java:interface_implementation

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
Last revision Both sides next revision
java:interface_implementation [2017/03/31 14:13]
gthanos
java:interface_implementation [2017/03/31 15:10]
gthanos [LinkedStack]
Line 59: Line 59:
 ===== LinkedStack ===== ===== LinkedStack =====
  
-<code java LinkedStack.java> +<code java ArrayListStack.java> 
-class LinkedNode ​+import java.util.*;​ 
-  private ​Object o; +public ​class ArrayListStack implements Stack 
-  private LinkedNode next;+  private ​ArrayList list;  ​
   ​   ​
-  public ​LinkedNode(LinkedNode nxt, Object e) { +  public ​ArrayListStack() { 
-    ​next nxt; +    ​list new ArrayList();
-    o = e; +
-  } +
-   +
-  public LinkedNode(Object e+
-    this(null, e); +
-  } +
-   +
-  public Object getElement() { return o; } +
-  public LinkedNode getNext() { return next; } +
-   +
-  public void setElement(Object e) { o = e; } +
-  public void setNext(LinkedNode node) { next = node; } +
-+
- +
-public class LinkedStack implements Stack { +
-  int size; +
-  LinkedNode head; +
- +
-  public LinkedStack() { +
-    size=0; +
-    head = null;+
   }   }
   ​   ​
   public int size() {   public int size() {
-    return size;+    return ​list.size();
   }   }
   ​   ​
-  public void push(Object o) { +  public void push(Object o) {   
-    ​// the following is OK even if head == null. +    ​list.add(o);
-    head = new LinkedNode(head, o)+
-    size++;+
   }   }
   ​   ​
   public Object pop() {   public Object pop() {
-    ​LinkedNode pN = head; +    ​return list.remove(list.size()-1);
-    head = head.getNext()+
-    size--; +
-    return pN.getElement();+
   }   }
   ​   ​
   public Object top() {   public Object top() {
-    return ​head;+    return ​list.get(list.size()-1);
   }   }
   ​   ​
   public String toString() {   public String toString() {
     String str = "​@@@@@@@@ - Stack - @@@@@@@@\n";​     String str = "​@@@@@@@@ - Stack - @@@@@@@@\n";​
-    ​LinkedNode curr = head; +    ​for(Object o : list
-    while(curr != null+      str += o.toString()+"​\n"​;
-      str += curr.getElement().toString();​+
     return str + "​@@@@@@@@@@@@@@@@@@@@@@@@@@@\n";​     return str + "​@@@@@@@@@@@@@@@@@@@@@@@@@@@\n";​
-  }+  }  
 } }
 </​code>​ </​code>​
Line 122: Line 95:
 Παραπάνω έχουμε υλοποιήσει το συγκεκριμένο //​interface//​ μέσα από δύο διαφορετικές κλάσεις. Αν και η υλοποίηση των κλάσεων διαφέρει σημαντικά,​ η λειτουργία τους είναι κοινή. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από της δύο κλάσεις για να εξυπηρετήσετε τη λειτουργικότητα του //​interface//​ **Stack** σε ένα πρόγραμμα. Παραπάνω έχουμε υλοποιήσει το συγκεκριμένο //​interface//​ μέσα από δύο διαφορετικές κλάσεις. Αν και η υλοποίηση των κλάσεων διαφέρει σημαντικά,​ η λειτουργία τους είναι κοινή. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από της δύο κλάσεις για να εξυπηρετήσετε τη λειτουργικότητα του //​interface//​ **Stack** σε ένα πρόγραμμα.
  
-| Προηγούμενο : [[ :java:interface_implementation ​Υλοποίηση του interface ​ ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο:​ [[ :​java:​interface_as_data_type | Το interface ως τύπος δεδομένων ]]  |+| Προηγούμενο : [[ :java:interface_definition ​Δήλωση του interface ​ ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο:​ [[ :​java:​interface_as_data_type | Το interface ως τύπος δεδομένων ]]  |
  
java/interface_implementation.txt · Last modified: 2019/04/05 17:20 by gthanos