java:interface_implementation

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Υλοποίηση του Interface ====== Μία κλάση υλοποιεί ένα interface μόνο εάν υλοποιεί ΟΛΕΣ τις μεθόδους του interface. Έάν έστω και μία μέθοδος δεν υλοποιείται τότε η κλάση δεν υλοποιεί το interface. Σε συνέχεια του προηγούμενου παραδείγματος θα επιχειρήσουμε να δημιουργήσουμε δύο διαφορετικές κλάσεις που υλοποιούν το συγκεκριμένο //interface//. Οι κλάσεις αυτές είναι **SimpleTimer** και **StartStopTimer**. Και οι δύο κλάσεις παρέχουν την ίδια λειτουργικότητα. ===== ArrayStack ===== <code java ArrayStack.java> public class ArrayStack implements Stack { public int capacity; public Object []array; public int size; public ArrayStack() { this(256); } public ArrayStack(int capacity) { array = new Object[capacity]; this.capacity = capacity; size = 0; } public int size() { return size; } public void push(Object o) { if( size >= capacity-1 ) { capacity *= 2; Object []newArray = new Object[capacity]; for(int i=0; i<array.length; i++) newArray[i] = array[i]; array = newArray; newArray = null; } array[size++] = o; } public Object pop() { return array[--size]; } public Object top() { return array[size-1]; } public String toString() { String str = "@@@@@@@@ - Stack - @@@@@@@@\n"; for(int i=size-1; i>=0; i--) str += array[i].toString()+"\n"; return str + "@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"; } } </code> ===== LinkedStack ===== <code java ArrayListStack.java> import java.util.*; public class ArrayListStack implements Stack { private ArrayList list; public ArrayListStack() { list = new ArrayList(); } public int size() { return list.size(); } public void push(Object o) { list.add(o); } public Object pop() { return list.remove(list.size()-1); } public Object top() { return list.get(list.size()-1); } public String toString() { String str = "@@@@@@@@ - Stack - @@@@@@@@\n"; for(Object o : list) str += o.toString()+"\n"; return str + "@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"; } } </code> Παραπάνω έχουμε υλοποιήσει το συγκεκριμένο //interface// μέσα από δύο διαφορετικές κλάσεις. Αν και η υλοποίηση των κλάσεων διαφέρει σημαντικά, η λειτουργία τους είναι κοινή. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από της δύο κλάσεις για να εξυπηρετήσετε τη λειτουργικότητα του //interface// **Stack** σε ένα πρόγραμμα. | Προηγούμενο : [[ :java:interface_definition | Δήλωση του interface ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:interface_as_data_type | Το interface ως τύπος δεδομένων ]] |

java/interface_implementation.1490973058.txt.gz · Last modified: 2017/03/31 15:10 by gthanos