java:inner_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:inner_classes [2017/04/02 23:44]
gthanos
java:inner_classes [2019/04/02 20:20]
gthanos
Line 4: Line 4:
 Η λίστα θα χρειαστεί να έχει δύο βοηθητικές κλάσεις  Η λίστα θα χρειαστεί να έχει δύο βοηθητικές κλάσεις 
   - την κλάση που περιγράφει τον κόμβο της λίστας και    - την κλάση που περιγράφει τον κόμβο της λίστας και 
-  - μία κλάση τύπου iterator για την διάτρεξη της λίστας+  - μία κλάση τύπου //iterator// για την διάτρεξη της λίστας
 Οι δύο παραπάνω κλάσεις εξυπηρετεί να δηλωθούν ως εσωτερικές κλάσεις αποκρύπτοντας την υλοποίηση των κλάσεων αυτών. Το παραπάνω επιτρέπει η λίστα να είναι συμβατή με τα interfaces [[http://docs.oracle.com/javase/8/docs/api/java/util/List.html|java.util.List]] και [[http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html|java.util.Iterator]]. Δείτε τον παρακάτω κώδικα που την υλοποιεί. Οι δύο παραπάνω κλάσεις εξυπηρετεί να δηλωθούν ως εσωτερικές κλάσεις αποκρύπτοντας την υλοποίηση των κλάσεων αυτών. Το παραπάνω επιτρέπει η λίστα να είναι συμβατή με τα interfaces [[http://docs.oracle.com/javase/8/docs/api/java/util/List.html|java.util.List]] και [[http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html|java.util.Iterator]]. Δείτε τον παρακάτω κώδικα που την υλοποιεί.
  
Line 35: Line 35:
   }   }
      
-  private class Iterator<E> implements java.util.Iterator {+  private class Iterator<E> implements java.util.Iterator<E> {
     Node<E> curr;     Node<E> curr;
     public Iterator(Node<E> c) {     public Iterator(Node<E> c) {
Line 93: Line 93:
 Το παρακάτω πρόγραμμα επιχειρεί να δημιουργήσει μία λίστα με 20 τυχαίους αριθμούς και στη συνέχεια να τους εκτυπώσει χρησιμοποιώντας τον Iterator της λίστας. Παρατηρήστε ότι σε κανένα σημείου του προγράμματος δεν αποκαλύπτεται η ύπαρξη των εσωτερικών κλάσεων //Node// και //Iterator//. Η μεταβλητή //it// παραπέμπει στο interface [[http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html|java.util.Iterator]]. Το παρακάτω πρόγραμμα επιχειρεί να δημιουργήσει μία λίστα με 20 τυχαίους αριθμούς και στη συνέχεια να τους εκτυπώσει χρησιμοποιώντας τον Iterator της λίστας. Παρατηρήστε ότι σε κανένα σημείου του προγράμματος δεν αποκαλύπτεται η ύπαρξη των εσωτερικών κλάσεων //Node// και //Iterator//. Η μεταβλητή //it// παραπέμπει στο interface [[http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html|java.util.Iterator]].
  
-<WRAP todo center 80% round> Επιχειρήσετε να συμπληρώσετε την κλάση LinkedList ώστε να ικανοποιεί το interface [[http://docs.oracle.com/javase/8/docs/api/java/util/List.html|java.util.List]].+<code java LinkedListUsage.java> 
 +import java.util.*; 
 + 
 +public class LinkedListUsage { 
 +  public static final int SIZE = 20; 
 +   
 +  public static void main(String[] args) { 
 +    Random rand = new Random( new Date().getTime()); 
 +    LinkedList<Integer> list = new LinkedList<>(); 
 +    for(int i=0; i<SIZE; i++) { 
 +      list.add(rand.nextInt(8*SIZE)); 
 +    } 
 +    Iterator<Integer> it = list.iterator(); 
 +    while(it.hasNext()) { 
 +      System.out.print(it.next()+"  "); 
 +    } 
 +    System.out.println(); 
 +  } 
 +
 +</code> 
 + 
 +<WRAP todo center 80% round> **Εργασία για το σπίτι:** Επιχειρήσετε να συμπληρώσετε την κλάση LinkedList ώστε να ικανοποιεί το interface [[http://docs.oracle.com/javase/8/docs/api/java/util/List.html|java.util.List]].
 </WRAP> </WRAP>
  
  
 |Προηγούμενο: [[ :java:nested_classes| Εμφωλευμένες κλάσεις  ]] |  [[:toc|Περιεχόμενα]]  |Επόμενο: [[ :java:inner_class_objects | Δημιουργία αντικειμένων της εσωτερικής κλάσης ]]| |Προηγούμενο: [[ :java:nested_classes| Εμφωλευμένες κλάσεις  ]] |  [[:toc|Περιεχόμενα]]  |Επόμενο: [[ :java:inner_class_objects | Δημιουργία αντικειμένων της εσωτερικής κλάσης ]]|
java/inner_classes.txt · Last modified: 2021/04/12 04:31 (external edit)