java:static_nested_classes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:static_nested_classes [2017/02/06 13:02]
gthanos
java:static_nested_classes [2018/03/21 10:13]
gthanos [Στατικές εμφωλευμένες κλάσεις]
Line 16: Line 16:
     outer = o;     outer = o;
     java.util.Random r = new java.util.Random();     java.util.Random r = new java.util.Random();
-    innerObj = new StaticInnerClass(); +    innerObj = new StaticInnerClass(r.nextInt(100), r.nextInt(100), r.nextInt(100));
-    innerObj.innerPriv = r.nextInt(10000)+
-    innerObj.innerPub = r.nextInt(10000);+
   }   }
      
Line 30: Line 28:
     public int innerPub;     public int innerPub;
          
-    private void setInnerPriv(int priv) { innerPriv = priv} +    public StaticInnerClass(int innerPriv, int innerProt,int innerPub) { 
-    public void setInnerProt(int prot) { innerProt = prot} +      this.innerPriv = innerPriv
-    public void setInnerPub(int pub) { innerPub = pub; }+      this.innerProt = innerProt
 +      this.innerPub = innerPub; 
 +       
          
     public String toString() {      public String toString() { 
Line 42: Line 42:
     NonStaticOuterClass myOuter = new NonStaticOuterClass(10);     NonStaticOuterClass myOuter = new NonStaticOuterClass(10);
     System.out.println(myOuter.innerObj.toString());     System.out.println(myOuter.innerObj.toString());
-    //System.out.println(NonStaticOuterClass.innerObj.toString());     +    StaticInnerClass myInnerObj = new StaticInnerClass(15, 20, 35); 
-    NonStaticOuterClass.StaticInnerClass inner = new NonStaticOuterClass.StaticInnerClass();+    System.out.println(myInnerObj); 
 +     
 +    NonStaticOuterClass.StaticInnerClass myInnerObj2 = new NonStaticOuterClass.StaticInnerClass(100, 200, 300); 
 +    System.out.println(myInnerObj2);
   }     }  
 } }
Line 51: Line 54:
 Από την μεταγλώττιση και εκτέλεση του παραπάνω κώδικα παρατηρούμε ότι  Από την μεταγλώττιση και εκτέλεση του παραπάνω κώδικα παρατηρούμε ότι 
   * αν και η κλάση //StaticInnerClass// δηλώνεται ως //static// μπορεί να δημιουργηθούν πολλαπλά αντικείμενα της κλάσης αυτής.    * αν και η κλάση //StaticInnerClass// δηλώνεται ως //static// μπορεί να δημιουργηθούν πολλαπλά αντικείμενα της κλάσης αυτής. 
-  * Τα αντικείμενα της στατικής εσωτερικής κλάσης ΔΕΝ ανήκουν στην εξωτερική κλάση, όπως συμβαίνει στις μη στατικές κλάσεις. Στο παραπάνω παράδειγμα, η σύνδεση έγκειται στο γεγονός ότι ένα πεδίο της εξωτερικής κλάσης είναι του τύπου της εσωτερικής κλάσης.+  * Τα αντικείμενα της στατικής εσωτερικής κλάσης ΔΕΝ ανήκουν στην εξωτερική κλάση, όπως συμβαίνει στις μη στατικές κλάσεις. Στο παραπάνω παράδειγμα, η σύνδεση μεταξύ εσωτερικής στατικής και εξωτερικής μη στατικής κλάσης έγκειται στο γεγονός ότι ένα πεδίο της εξωτερικής κλάσης είναι του τύπου της εσωτερικής κλάσης.
   * Η τελευταία γραμμή της μεθόδου **main** δείχνει ότι οι στατικές εσωτερικές κλάσεις μπορούν να οριστούν ανεξάρτητα από αντικείμενα της εξωτερικής τους κλάσης. Επιβεβαιώστε την αλήθεια του ισχυρισμού μεταγλωττίζοντας και εκτελώντας τον παραπάνω κώδικα.   * Η τελευταία γραμμή της μεθόδου **main** δείχνει ότι οι στατικές εσωτερικές κλάσεις μπορούν να οριστούν ανεξάρτητα από αντικείμενα της εξωτερικής τους κλάσης. Επιβεβαιώστε την αλήθεια του ισχυρισμού μεταγλωττίζοντας και εκτελώντας τον παραπάνω κώδικα.
 </WRAP> </WRAP>
Line 109: Line 112:
 </code> </code>
  
-|Προηγούμενο: [[ :java:nested_classes| Εμφωλευμένες κλάσεις  ]] | Επόμενο: [[ :java:inner_classes Μη στατικές εμφωλευμένες κλάσεις ]]|+|Προηγούμενο: [[ :java:nested_classes| Εμφωλευμένες κλάσεις  ]] | Επόμενο: [[ :java:exceptions_intro Εξαιρέσεις ]]|
  
  
  
java/static_nested_classes.txt · Last modified: 2020/03/16 09:55 (external edit)