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

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

Δημοσ.

Καλησπερα παιδια,θα ηθελα να μου εξηγησει καποιος τι ακριβως κανει το Keyword this,διαβασα αρκετα στο ιντερνετ αλλα δεν μπορω να πω οτι καταλαβα ακριβως την σημασια του,ειναι κι αυτο το καταραμενο το google translate που δεν βοηθαει και πολυ,βγαζει κατι κουλα που τραβας τα μαλλια σου

 

 

The most common reason for using the this keyword is because a field is shadowed by a method or constructor parameter.

 

το google translate μου εβγαλε το field is shadowed by a method σαν οτι ένα πεδίο σκιάζεται από μια μέθοδο,τι ενοει οτι σκιαζεται απο μια μεθοδο?

 

 

Each argument to the constructor shadows one of the object's fields — inside the constructor x is a local copy of the constructor's first argument. To refer to the Point field x, the constructor must use this.x.

 

 

From within a constructor, you can also use the this keyword to call another constructor in the same class. Doing so is called an explicit constructor invocation. Here's another Rectangle class, with a different implementation from the one in the Objects section.

 

μπορει λεει ενας constructor να καλεσει εναν αλλον constructor μεσα στην ιδια κλαση,αλλαζει τις τιμες του?

δεν το πιανω

Οριστε και τα παραδειγματα που παραθετει

public class Rectangle {
    private int x, y;
    private int width, height;
        
    public Rectangle() {
        this(0, 0, 1, 1);
    }
    public Rectangle(int width, int height) {
        this(0, 0, width, height);
    }
    public Rectangle(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
    
}

το this(0, 0, 1, 1); δινει τιμες στις μεταβλητες?τι κανει ακριβως?

 

 

 

 

 

 

 

 

Δημοσ.

το google translate μου εβγαλε το field is shadowed by a method σαν οτι ένα πεδίο σκιάζεται από μια μέθοδο,τι ενοει οτι σκιαζεται απο μια μεθοδο?

 

Εννοεί πως όταν έχεις κάτι σαν αυτό

 

public class Foo {
    private int bar;
        
    public whatever(int bar) {
        this.bar = bar;
    }

τότε χρειάζεται να πεις this.bar για να αναφερθείς στο field γιατί αν πεις σκέτο bar αναφέρεσαι στην παράμετρο της συνάρτησης.

 

μπορει λεει ενας constructor να καλεσει εναν αλλον constructor μεσα στην ιδια κλαση,αλλαζει τις τιμες του?

Ναι μπορεί. Το "αλλάζει τις τιμές του?" δεν έχω ιδέα τι προσπαθεί να πει.

 

Οριστε και τα παραδειγματα που παραθετει

public class Rectangle {
    private int x, y;
    private int width, height;
        
    public Rectangle() {
        this(0, 0, 1, 1);
    }
    public Rectangle(int width, int height) {
        this(0, 0, width, height);
    }
    public Rectangle(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }
    
}
το this(0, 0, 1, 1); δινει τιμες στις μεταβλητες?τι κανει ακριβως?

 

Καλεί τον constructor Rectangle(int x, int y, int width, int height) με παραμέτρους 0, 0, 1, 1.

 

Προτάσεις:

  1. Πάρε ένα βιβλίο.
  2. Μάθε να χρησιμοποιείς τον debugger.
Δημοσ.

 

Προτάσεις:

  1. Πάρε ένα βιβλίο.
  2. Μάθε να χρησιμοποιείς τον debugger.

 

σ ευχαριστω φιλε μου,θα τα λαβω σοβαρα υποψην μου,βιβλια προς το παρον λογο του οτι ειμαι ανεργος δεν παιζουν λεφτα οποτε οτι κανω μεσω ιντερνετ,μελλοντικα ομως σιγουρα

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...