Προς το περιεχόμενο

προγραμματισμος σε java


papvasia

Προτεινόμενες αναρτήσεις

Δημοσ.

γεια σας παιδια ..χρειαζομαι την πολυτιμη βοηθεια σας ...ειμαι λιγο αρχαρια και τωρα αρχισα να ασχολουμε με τον αντικειμενοστραφη προγραμματισμο σε java (χρησιμοποιω για compiler το eclipse)

1) θα ηθελα να ρωτησω τι ακριβως κανει το set και το get οταν το βαζουμε μπροστα απο μια συναρτηση....

2) σε τι χρησιμευει το πχ this.name δεν μπορω να καταλαβω γιατι που πρεπει να το βαζουμε και που οχι

3) Τελος αν εχω καταλαβει καλα γενικα κατασκευαζουμε κλασεις πχ student, course...και γενικα οποιεσδηποτε κλασεις και ολες αυτες τισ καλουμε σε μια main..σωστα???

ευχαριστω εκ των προτερων παρα παρα πολυ

Δημοσ.

Καλώς ήρθες,

1. Θα μεταφερθεί το θέμα σου στο τμήμα "Προγραμματισμός"

2. Σε ποιο επίπεδο προγραμματισμού βρίσκεσαι; Εμπειρίες από άλλη γλώσσα;

Δημοσ.

ειμαι 2 ετος πληροφορικη και ασχολουμε με προγραμματισμο εδω και ενα 1 και κατι...απο γλωσσες εχω μαθει απο 1 ετος pascal, c , visual basic , assembly και τωρα c++ και java....

Δημοσ.
γεια σας παιδια ..χρειαζομαι την πολυτιμη βοηθεια σας ...ειμαι λιγο αρχαρια και τωρα αρχισα να ασχολουμε με τον αντικειμενοστραφη προγραμματισμο σε java (χρησιμοποιω για compiler το eclipse)

1) θα ηθελα να ρωτησω τι ακριβως κανει το set και το get οταν το βαζουμε μπροστα απο μια συναρτηση....

2) σε τι χρησιμευει το πχ this.name δεν μπορω να καταλαβω γιατι που πρεπει να το βαζουμε και που οχι

3) Τελος αν εχω καταλαβει καλα γενικα κατασκευαζουμε κλασεις πχ student, course...και γενικα οποιεσδηποτε κλασεις και ολες αυτες τισ καλουμε σε μια main..σωστα???

ευχαριστω εκ των προτερων παρα παρα πολυ

 

1) απλά τίποτα

είναι απλά μια σύμβαση που κάνουμε για ευκολία

set...>και καλά δίνει ορίζει αλλάζει τιμές σε μια ιδιότητα μιας κλάσης

get...>παίρνει την τιμή μιας ιδιότητας(μεταβλητής) ενός αντικειμένου και την δίνει

σε αυτόν που την κάλεσε (συνήθως η κλήση γίνεται από άλλη κλάση).

 

3)δεν είναι σωστό αυτό ακριβώς.Μία κλάση μπορεί να προσπελαστεί

και από μεθόδους αλλά και από constructors μιας άλλης κλάσης.Μπορεί και από την Main φυσικά.

 

2) this αναφέρεται στον ευατό του.

this.name-->αναφέρεται στην ιδιότητα name του τρέχοντος αντικειμένου

μία αναφορά στο τρέχον αντικείμενο ουσιαστικά

για περισσότερα εδώ-->http://java.sun.com/docs/books/tutorial/java/javaOO/thiskey.html

Δημοσ.

1) θα ηθελα να ρωτησω τι ακριβως κανει το set και το get οταν το βαζουμε μπροστα απο μια συναρτηση....

 

Όπως είπαν οι προλαλήσαντες το get/set είναι σύμβαση ονοματολογίας που γενικά χρησιμοποιείται κατά κόρον στη java για να λαμβάνουμε/θέτουμε τιμές σε μεταβλητές κλάσεων.

 

πχ,

 

>
class Person {
     private int age;

     public int getAge() { return age; }
     public void setAge(int newage) { age = newage; }
  
     // ... other functions/constructors 
}

 

Οι μέθοδοι getAge και setAge θα μπορούσαν να έχουν ονομαστεί και αλλιώς, απλά έχει επικρατήσει η λογική get/set.

 

2) σε τι χρησιμευει το πχ this.name δεν μπορω να καταλαβω γιατι που πρεπει να το βαζουμε και που οχι

 

Η απλούστερη (και πιο χαζή) περίπτωση σχετίζεται με ονοματολογία, δηλαδή έστω πως έχεις ορίσει τη μέθοδο setAge ως εξής:

 

>void setAge(int age)
{
    age = age // ????? ποιο είναι το πρώτο age και ποιό το δεύτερο; => Compile Error
    [b]this[/b].age = age; // ΟΚ
}

 

To this μπορεί να χρησιμοποιηθεί μόνο σε member μεθόδους και ΟΧΙ σε static μεθόδους και αναφέρεται πάντα στο αντικείμενο για το οποίο εκτελείται η μέθοδος. Υπάρχουν και περιπτώσεις που το this είναι απαραίτητο για την υλοποίηση μιας μεθόδου.

 

3) Τελος αν εχω καταλαβει καλα γενικα κατασκευαζουμε κλασεις πχ student, course...και γενικα οποιεσδηποτε κλασεις και ολες αυτες τισ καλουμε σε μια main..σωστα???

ευχαριστω εκ των προτερων παρα παρα πολυ

 

Η main απλά "ξεκινα" το πρόγραμμα. Το ποιός καλεί τί στη συνέχεια το αποφασίζεις εσύ.

Δημοσ.

age = age // ????? ποιο είναι το πρώτο age και ποιό το δεύτερο; => Compile Error

Αυτό γιατί να κάνει compiler error; Δεν υπάρχει ambiguity.. το symbol `age` αναφέρεται σε αυτό που είναι σε local scope, δηλαδή στο argument.

Δημοσ.
Αυτό γιατί να κάνει compiler error; Δεν υπάρχει ambiguity.. το symbol `age` αναφέρεται σε αυτό που είναι σε local scope, δηλαδή στο argument.

 

Έχεις δίκιο σε αυτό. Η αλήθεια είναι πως το παράδειγμα που είχα γράψει όντως είχε compile error απλά μετά το έκανα πιο απλό και έμεινε το σχόλιο. Τουλάχιστον κάποιοι παρακολουθούν τα threads. Thanx.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...