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

Java this/super/ κληρονομικοτητα


manic

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

Δημοσ.

Θελω να εξασκηθω πανω σε αυτες τις εννοιες ψαχνψ στο ιντερνετ αλλα δν μπορω να βρω αυτο που θελω, ψαχνω κανενα pdf η καποια σελιδα να εχει παραδειγματα αλλα και επεξηγηση των αποτελεσματων πχ: να εχει ενα προγραμμα να βγαζει 20 αποτελεσματα αλλα να μου λεει πως βρεθηκε το καθενα (δν θελω απλα παραδειγματα τα ξερω κατι λιγο ποιο συνθετο)

Δημοσ.

γενικά ξέρεις τι είναι το καθένα ή όχι;

 

 

 

----------------------------------------

*this = pointer στην κλάση που κάλεσε την μέθοδο

 

super = ο δημιουργός της γονικής κλάσης(γονική κλάση δες στην κληρονομικότητα)

 

κληρονομικότητα = υπάρχουν 2 ή περισσότερες κλάσεις η γονική(Parent Class) και η κλάση παιδί(Child Class)

μετά η κλάση παιδί γίνεται γονική και έχει άλλα δικά της παιδιά και πάει λέγοντας.

το βασικό που μπορείς να κερδίσεις από την κληρονομικότητα είναι ότι η κλάση παιδί,

εκτός τις δικές της μεθόδους και μεταβλητές έχει και τις γονικής.

 

πχ έχεις μία κλάση οχήματα και φτιάχνεις κλάσεις παιδιά , μηχανή , ποδήλατο, αυτοκίνητο

Δημοσ.

Έλα ένα παράδειγμα

 

>public class Test {
   
public static void main(String[] args)  {
	
      	dog k= new dog();
               System.out.println(6);
	
}	

}
class animal
{  
public animal()
{   this(2);
	System.out.println(1);
}
public animal(int k)
{   super();
	System.out.println(2);
}
public animal(Integer k)
{   super();
	System.out.println(3);
}

} 


class dog extends animal{

public dog()
{   this(2);
	System.out.println(4);
}
public dog(int k)
{   super(4);
	System.out.println(5);
}
}

 

Τι θα βγάλει ? Με το μάτι έτσι μην το ρίξεις στο eclipse

Δημοσ.

εχω μερικες ακομα αποριες ποια η διαφορα του χ=α-- , χ=--α καθως η διαφορα αναμεσα στο & και στο &&

 

aztec τhanks για την απαντηση αλλα ποια ειναι η λειτουργια του this(int) στην αρχη του constuctor??

Δημοσ.

τα this(2) που βλέπεις καλούν τον constructor που παίρνει σαν όρισμα έναν integer και ορίζει κιόλας αυτόν τον integer = 2

 

τα

α)x=a--

και

β)x=--a

 

έχουν μία μικρή αλλά σημαντική διαφορά,

στο α) πρώτα θα γίνει το x=a και μετά το a--

αντίθετα με το β) που θα γίνει το ανάποδο,

 

a=5;

x=a--;

σημαίνει x=5 κ a=4

ενώ

a=5;

x=--a;

σημαίνει x=4 κ a=4

 

τα & κ &&

το & για λογική πράξη AND από άλγεβρα boole

ενώ το && είναι τελεστής σύγκρισης

Δημοσ.

Τα & και && σε boolean πράξεις έχουν την ακόλουθη διαφορά

 

Το ακόλουθο με τον τελεστή && θα βγάλει 1

 

> public class Test {
   
public static void main(String[] args)  {
        int k=1 ;
        if ((k==0)&&(++k==1)){};
        
        System.out.println(k);
	
}	

}

 

Το ίδιο πρόγραμμα με τον τελεστή & θα βγάλει 2.

 

> public class Test {
   
public static void main(String[] args)  {
        int k=1 ;
        if ((k==0)&(++k==1)){};
        
        System.out.println(k);
	
}	

}

 

Τι σημαίνει αυτό ?

Ότι στην πρώτη περίπτωση δεν κάνει evaluate το δέυτερο σκέλος καθώς έτσι και αλλιώς δεν πρόκειται να ισχύει η συνθήκη.

Στην δεύτερη περίπτωση κάνει evaluate και το δεύτερο σκέλος όπως και να έχει. Για αυτό παράγουν διαφορετικά αποτελέσματα

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

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

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