ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
|
|
- Ερμόλαος Πυλαρινός
- 5 χρόνια πριν
- Προβολές:
Transcript
1 ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Γενικευμένες κλάσεις
2 Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία και τις μεθόδους της βασικής κλάσης και έχουν και δικά τους πεδία και μεθόδους HourlyEmployee hours wagerate getpay SalariedEmployee annualsalary getpay
3 Late Binding Employee name hiringdate getname gethiringdate Employee e; e = new HourlyEmployee(); System.out.println(e); e = new SalariedEmployee(); System.out.println(e); HourlyEmployee hours wagerate getpay SalariedEmployee annualsalary getpay Late Binding: O κώδικας που εκτελείται για την () εξαρτάται από την κλάση του αντικειμένου την ώρα της κλήσης (HourlyEmployee ή SalariedEmployee) και όχι την ώρα της δήλωσης (Employee)
4 Αφηρημένες κλάσεις Employee name hiringdate getname gethiringdate getpay public abstract double getpay(); Μια αφηρημένη μέθοδος δηλώνεται σε μια γενική κλάση και ορίζεται σε μια πιο εξειδικευμένη κλάση Οι κλάσεις με αφηρημένες μεθόδους είναι αφηρημένες κλάσεις. HourlyEmployee hours wagerate getpay SalariedEmployee annualsalary getpay Δεν μπορούμε να δημιουργήσουμε αντικείμενα αφηρημένων κλάσεων. Δηλαδή δεν μπορούμε να κάνουμε new Employee() εφόσον η Employee είναι αφηρημένη Οι παράγωγες ενυπόστατες κλάσεις πρέπει να υλοποιούν τις αφηρημένες μεθόδους.
5 Αφηρημένες κλάσεις Employee name hiringdate getname gethiringdate samesalary getpay public boolean samesalary(employee other) if(this.getpay() == other.getpay()) return true; return false HourlyEmployee hours wagerate getpay SalariedEmployee annualsalary getpay Μια αφηρημένη μέθοδος μπορεί να χρησιμοποιηθεί μέσα στις ενυπόστατες μεθόδους της αφηρημένης κλάσης
6 Interfaces Employee name hiringdate getname gethiringdate samesalary getpay EmployeePay getpay public interface EmployeePay public double getpay(); public abstract Employee implements EmployeePay HourlyEmployee hours wagerate getpay SalariedEmployee annualsalary getpay Ένα interface ορίζει μια βασική λειτουργικότητα (μεθόδους). Μία κλάση υλοποιεί το interface, δηλ. υλοποιεί τις μεθόδους του interface. Μια κλάση μπορεί να υλοποιεί παραπάνω από ένα interfaces
7 Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι?
8 public abstract class Vehicle private int position = 0; public Vehicle(int pos) position = pos; public abstract void move(); public void print() System.out.println("position = " + position); public class Example public static void main(string[] args) Vehicle[] V = new Vehicle[3]; V[0] = new Car(0,100); V[1] = new Bike(); V[2] = new Vehicle(0); V[0].drive(); V[0].print(); V[1].move(); V[1].print(); int gas = V[0].getGas(); public class Car extends Vehicle private int gas; public Car(int pos, int gas) position = pos; this.gas = gas; public void drive() position += 10; gas -= 10; public int getgas() return gas; public void print() super.print(); System.out.println("gas =" + gas); public class Bike extends Vehicle public void move() position ++;
9 public abstract class Vehicle private int position = 0; public Vehicle(int pos) position = pos; public abstract void move(); public void print() System.out.println("position = " + position); public class Example public static void main(string[] args) Vehicle[] V = new Vehicle[3]; V[0] = new Car(0,100); V[1] = new Bike(); V[2] = new Vehicle(0); V[0].drive(); V[0].print(); V[1].move(); V[1].print(); int gas = V[0].getGas(); public class Car extends Vehicle private int gas; public Car(int pos, int gas) position = pos; this.gas = gas; public void drive() position += 10; gas -= 10; public int getgas() return gas; public void print() super.print(); System.out.println("gas =" + gas); public class Bike extends Vehicle public void move() position ++;
10 public abstract class Vehicle protected int position = 0; public Vehicle() public Vehicle(int pos) position = pos; public int getposition return position public void setposition(int pos) position = pos; Το πεδίο position πρέπει να είναι protected εφόσον το χρησιμοποιούν και οι παράγωγες κλάσεις ή να ορίσουμε getposition και setposition μεθόδους Πρέπει να ορίσουμε και ένα κενό constructor, ή να καλούμε την super μέσα στις παράγωγες κλάσεις. public abstract void move(); public void print() System.out.println("position = " + position);
11 public class Car extends Vehicle private int gas; public Car(int pos, int gas) position = setposition(pos); this.gas = gas; public void move() setposition(getposition() + 10); gas -= 10; public int getgas() return gas; O constructor δουλεύει μόνο αν έχουμε constructor χωρίς ορίσματα στην Vehicle. Αλλιώς χρειαζόμαστε αυτό τον constructor: public Car(int pos, int gas) super(pos); this.gas = gas; H Car πρέπει να υλοποίει την μέθοδο move public void print() super.print(); System.out.println("gas =" + gas);
12 public class Bike extends Vehicle public void move() position ++; O constructor (ή μάλλον η έλλειψη του) δουλεύει μόνο αν έχουμε constructor χωρίς ορίσματα στην Vehicle. Αλλιώς χρειαζόμαστε αυτό τον constructor: public Bike() super(0);
13 public class Example public static void main(string[] args) Vehicle[] V = new Vehicle[2]; V[0] = new Car(0,100); V[1] = new Bike(); //V[2] = new Vehicle(0); V[0].move(); V[0].print(); V[1].move(); V[1].print(); int gas = ((Car)V[0]).getGas() Δεν μπορούμε να δημιουργήσουμε αντικείμενο τύπου Vehicle γιατί είναι αφηρημένη κλάση. Η Vehicle δεν έχει μέθοδο getgas. Για να την καλέσουμε θα πρέπει να κάνουμε downcast το αντικείμενο V[0] σε Car. Ερωτήσεις: Υπάρχει πρόβλημα με την εντολή Vehicle[] V = new Vehicle[2];? Ποια print καλείται για τo αντικείμενο V[0]? Ποια για το V[1]? Γιατί? Τι θα τυπώσει το πρόγραμμα?
14 Υπάρχει κάποιο λάθος σε αυτό τον ορισμό? public abstract class EngineVehicle extends Vehicle protected int gas; public EngineVehicle(int pos, int gas) super(pos); this.gas = gas; Όχι. Εφόσον η EngineVehicle είναι αφηρημένη δεν χρειάζεται να ορίσουμε την αφηρημένη μέθοδο move
15 ΠΑΡΑΔΕΙΓΜΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑΣ
16 Παράδειγμα κληρονομικότητας Έχουμε ένα σύστημα διαχείρισης εισιτηρίων μιας συναυλίας. Το κάθε εισιτήριο έχει ένα νούμερο και τιμή. Η τιμή του εισιτηρίου εξαρτάται αν θα αγοραστεί στην είσοδο (50 ευρώ), ή θα αγοραστεί μέχρι και 10 μέρες πριν την συναυλία (40 ευρώ), ή πάνω από 10 μέρες πριν την συναυλία (30 ευρώ). Τα εισιτήρια εκ των προτέρων έχουν φοιτητική έκπτωση 50%. Θέλουμε να τυπώσουμε τα εισιτήρια και να υπολογίσουμε τα συνολικά έσοδα της συναυλίας.
17 Ticket Ένας σχεδιασμός number getprice AdvanceTicket numofdays getprice StudentAdvance getprice
18 Ticket Ένας άλλος σχεδιασμός number getprice AdvanceTicket numofdays getprice WalkInTicket getprice StudentAdvance getprice
19 Αν θέλουμε φοιτητική έκπτωση σε όλα τα εισιτήρια? Ticket number getprice AdvanceTicket numofdays getprice WalkInTicket getprice StudentAdvance getprice StudentWalkIn getprice
20 Αν θέλουμε φοιτητική έκπτωση σε όλα τα εισιτήρια? Ticket number student: boolean finalprice getprice public abstract double getprice(); public double finalprice() if (student) return getprice()*0.5; return getprice(); AdvanceTicket numofdays getprice WalkInTicket getprice
21 ΓΕΝΙΚΕΥΜΕΝΕΣ ΚΛΑΣΕΙΣ
22 Stack Θυμηθείτε πως ορίσαμε μια στοίβα ακεραίων
23 public class IntStackElement private int value; private IntStackElement next = null; public IntStackElement(int value) this.value = value; public int getvalue() return value; public IntStackElement getnext() return next; public void setnext(intstackelement element) next = element;
24 public class IntStack private IntStackElement head; private int size = 0; public int pop() if (size == 0) // head == null System.out.println("Pop from empty stack"); System.exit(-1); int value = head.getvalue(); head = head.getnext(); size --; return value; public void push(int value) IntStackElement element = new IntStackElement(value); element.setnext(head); head = element; size ++;
25 Stack Αν θέλουμε η στοίβα μας να αποθηκεύει αντικείμενα της κλάσης Person θα πρέπει να ορίσουμε μια διαφορετική Stack και διαφορετική StackElement.
26 class PersonStackElement private Person value; private PersonStackElement next; public PersonStackElement(Person val) value = val; public void setnext(personstackelement element) next = element; public PersonStackElement getnext() return next; public Person getvalue() return value;
27 public class PersonStack private PersonStackElement head; private int size = 0; public Person pop() if (size == 0) // head == null System.out.println("Pop from empty stack"); System.exit(-1); Person value = head.getvalue(); head = head.getnext(); size --; return value; public void push(person value) PersonStackElement element = new PersonStackElement(value); element.setnext(head); head = element; size ++;
28 Stack Θα ήταν πιο βολικό αν μπορούσαμε να ορίσουμε μία μόνο κλάση Stack που να μπορεί να αποθηκεύει αντικείμενα οποιουδήποτε τύπου. Πώς μπορούμε να το κάνουμε αυτό? Μια λύση: Η ObjectStack που κρατάει αντικείμενα Object, την πιο γενική κλάση Τι πρόβλημα μπορεί να έχει αυτό?
29 class ObjectStackElement private Object value; private ObjectStackElement next; public ObjectStackElement(Object val) value = val; public void setnext(objectstackelement element) next = element; public ObjectStackElement getnext() return next; public Object getvalue() return value;
30 public class ObjectStack private ObjectStackElement head; private int size = 0; public Object pop() if (size == 0) // head == null System.out.println("Pop from empty stack"); System.exit(-1); Object value = head.getvalue(); head = head.getnext(); size --; return value; public void push(object value) ObjectStackElement element = new ObjectStackElement(value); element.setnext(head); head = element; size ++;
31 public class ObjectStackTest public static void main(string[] args) ObjectStack stack = new ObjectStack(); Person p = new Person( Alice, 1); Integer i = new Integer(10); String s = a random string ; stack.push(p); stack.push(i); stack.push(s); Δεν μπορούμε να ελέγξουμε τι αντικείμενα μπαίνουν στην στοίβα. Κατά την εξαγωγή θα πρέπει να γίνει μετατροπή (downcasting) και θέλει προσοχή να μετατρέπουμε το σωστό αντικείμενο στον σωστό τύπο. Θέλουμε να δημιουργούμε στοίβες συγκεκριμένου τύπου.
32 Γενικευμένες (Generic) κλάσεις Οι γενικευμένες κλάσεις περιέχουν ένα τύπο δεδομένων Τ που ορίζεται παραμετρικά Όταν χρησιμοποιούμε την κλάση αντικαθιστούμε την παράμετρο Τ με τον τύπο δεδομένων (την κλάση) που θέλουμε Συντακτικό: public class Example<T> Ορίζει την γενικευμένη κλάση Example με παράμετρο τον τύπο Τ Μέσα στην κλάση ο τύπος Τ χρησιμοποιείται σαν τύπος δεδομένων Όταν χρησιμοποιούμε την κλάση Example αντικαθιστούμε το Τ με κάποια συγκεκριμένη κλάση Example<String> ex = new Example<String>();
33 Ένα πολύ απλό παράδειγμα public class Example<T> private T data; public Example(T data) this.data = data; public void setdata(t data) this.data = data; public T getdata() return data; Όταν ορίζουμε το αντικείμενο ex η κλάση String αντικαθιστά τις εμφανίσεις του Τ στον κώδικα Ο ορισμός του constructor γίνεται χωρίς το <Τ> παρότι στην δημιουργία του αντικειμένου χρησιμοποιούμε το <String> public static void main(string[] args) Example<String> ex = new Example<String>( hello world ); System.out.println(ex.getData());
34 Γενικευμένη Στοίβα Μπορούμε τώρα να φτιάξουμε μια στοίβα για οποιοδήποτε τύπο δεδομένων
35 class StackElement<Τ> private Τ value; private StackElement<Τ> next; public StackElement(Τ val) value = val; public void setnext(stackelement<τ> element) next = element; public StackElement<Τ> getnext() return next; public Τ getvalue() return value;
36 public class Stack<Τ> private StackElement<Τ> head; private int size = 0; public Τ pop() if (size == 0) // head == null System.out.println("Pop from empty stack"); System.exit(-1); Τ value = head.getvalue(); head = head.getnext(); size --; return value; public void push(τ value) StackElement<Τ> element = new StackElement<Τ>(value); element.setnext(head); head = element; size ++;
37 public class StackTest public static void main(string[] args) Stack<Person> personstack = new Stack<Person>(); personstack.push(new Person("Alice", 1)); personstack.push(new Person("Bob",2)); System.out.println(personStack.pop()); System.out.println(personStack.pop()); Stack<Integer> intstack = new Stack<Integer>(); intstack.push(new Integer(10)); intstack.push(new Integer(20)); System.out.println(intStack.pop()); System.out.println(intStack.pop()); Stack<String> stringstack = new Stack<String>(); stringstack.push("string 1"); stringstack.push("string 2"); System.out.println(stringStack.pop()); System.out.println(stringStack.pop()); Δημιουργούμε στοίβες συγκεκριμένου τύπου.
38 Πολλαπλές παράμετροι Μπορούμε να έχουμε πάνω από ένα παραμετρικούς τύπους public class KeyValuePair<K,V> private K key; private V value;
39 Παγίδες 1. Ο τύπος Τ δεν μπορεί να αντικατασταθεί από ένα πρωταρχικό τύπο δεδομένων (π.χ. int, double, boolean πρέπει να χρησιμοποιήσουμε τα wrapper classes γι αυτά, Integer, Boolean, Double) 2. Δεν μπορούμε να ορίσουμε ένα πίνακα από αντικείμενα γενικευμένης κλάσης. Π.χ., StackElement<String>[] A = new StackElement<String>[2]; 3. Δεν μπορούμε να χρησιμοποιούμε τον τύπο Τ όπως οποιαδήποτε άλλη κλάση. Π.χ., Τ obj = new T(); T[] a = new T[10]; Δεν είναι αποδεκτό! Δεν είναι αποδεκτά!
40 Γενικευμένες κλάσεις με περιορισμούς Ας υποθέσουμε ότι θέλουμε να ορίσουμε μία γενικευμένη κλάση Pair η οποία κρατάει ένα ζεύγος από δυο αντικείμενα οποιουδήποτε τύπου. public class Pair<T> private T first; private T second;
41 Γενικευμένες κλάσεις με περιορισμούς Θέλουμε επίσης να μπορούμε να διατάσουμε τα ζεύγη Για να γίνει αυτό θα πρέπει να υπάρχει τρόπος να συγκρίνουμε τα στοιχεία first και second. Περιορίζουμε την Τ να υλοποιεί το interface mycomparable public class Pair<T extends mycomparable> private T first; private T second; extends όχι implements public void order() if (first.compareto(second) > 0) T temp = first; first = second; second = temp;
42 Γενικευμένες κλάσεις με περιορισμούς Θέλουμε επίσης να μπορούμε να διατάσουμε τα ζεύγη Για να γίνει αυτό θα πρέπει να υπάρχει τρόπος να συγκρίνουμε τα στοιχεία first και second. Περιορίζουμε την Τ να υλοποιεί το interface Comparable public class Pair<T extends Comparable<Τ>> private T first; private T second; H Comparable<Τ> της Java To T είναι ο τύπος με τον οποίο μπορούμε να συγκρίνουμε public void order() if (first.compareto(second) > 0) T temp = first; first = second; second = temp;
43 Γενικευμένες κλάσεις με περιορισμούς Μπορούμε να περιορίσουμε τον παραμετρικό τύπο να κληρονομεί οποιαδήποτε κλάση, ή οποιοδήποτε interface ή συνδυασμό από τα παραπάνω. public class SomeClass public class SomeClass Δέχεται μόνο απογόνους της Employee <T extends Employee> <T extends Employee & Comparable<T>> Μπορούμε να έχουμε πολλά διαφορετικά interfaces στους περιορισμούς, αλλά μόνο μία κλάση και αυτή θα πρέπει να προηγείται στον ορισμό Δέχεται μόνο απογόνους της Employee που υλοποιούν το interface Comparable
44 Γενικευμένες κλάσεις και κληρονομικότητα Μια γενικευμένη κλάση μπορεί να έχει απογόνους άλλες γενικευμένες κλάσεις. Οι απόγονοι κληρονομούν και τον τύπο Τ. public class OrderedPair<T> extends Pair<T> Δεν ορίζεται κληρονομικότητα ως προς τον παραμετρικό τύπο Τ Δεν υπάρχει καμία σχέση μεταξύ των κλάσεων Pair<Employee> και Pair<HourlyEmployee>
45 Wildcard Αν θέλουμε να ορίσουμε ένα γενικό παραμετρικό τύπο χρησιμοποιούμε την παράμετρο μπαλαντέρ?, η οποία αναπαριστά ένα οποιοδήποτε τύπο Τ. Προσέξτε ότι αυτό είναι κατά τη χρήση της γενικευμένης κλάσης public void somemethod(pair<?>) Με αυτή τη δήλωση ορίζουμε μία μέθοδο που παίρνει σαν όρισμα ένα αντικείμενο Pair με τύπο Τ οτιδήποτε. Μπορούμε να περιοριστούμε σε ένα τύπο που είναι απόγονος της Employee. public void somemethod( Pair<? extends Employee>)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις Παράδειγμα κληρονομικότητας Έχουμε ένα σύστημα διαχείρισης εισιτηρίων μιας συναυλίας. Το κάθε εισιτήριο έχει
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις Συλλογές Από το προηγούμενο lab Είχαμε την κλάση Document, και δύο παραγόμενες κλάσεις: TextFile, Email Document
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις Συλλογές Προηγούμενο Quiz class Item private String name; public Item(String name) this.name = name; class
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Γενικευμένες κλάσεις Συλλογές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές Stack Θυμηθείτε πως ορίσαμε μια στοίβα ακεραίων public class IntStack { private IntStackElement head; private int size = 0; public
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Ένα μεγάλο παράδειγμα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Ένα μεγάλο παράδειγμα. Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Βρείτε τα λάθη Στο πρόγραμμα στην επόμενη διαφάνεια υπάρχουν διάφορα λάθη Ποια είναι? public abstract
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων class Person { private String name; public Person(String name){ this.name = name; public String getname(){ return name; class Car { private
Διαβάστε περισσότεραProtected: αν κάποια πεδία και μέθοδοι είναι protected μπορούν να τα δουν όλοι οι απόγονοι της κλάσης. Το βιβλίο δεν το συνιστά.
Protected μέλη Οι παράγωγες κλάσεις έχουν πρόσβαση σε όλα τα public πεδία και μεθόδους της γενικής κλάσης. ΔΕΝ έχουν πρόσβαση στα private πεδία και μεθόδους. Μόνο μέσω public μεθόδων set* και get* Protected:
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παραδείγματα Τι γίνεται αν έχουμε ένα constructor που παίρνει όρισμα ένα πίνακα? public Car(int[] position) Αν ο πίνακας αλλάξει μέσα στην
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων ΥΛΟΠΟΙΗΣΗ ΔΥΝΑΜΙΚΗΣ ΣΤΟΙΒΑΣ Παράδειγμα Υλοποιήστε το Stack που φτιάξαμε στα προηγούμενα μαθήματα ώστε να μην έχει περιορισμό στο μέγεθος
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων class Person { private String name; public Person(String name){ this.name = name; public String getname(){ return name; class Car { private
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Αντικείμενα μέσα σε αντικείμενα Ορίζουμε κλάσεις για να ορίσουμε τύπους δεδομένων τους οποίους χρειαζόμαστε Π.χ., ο τύπος δεδομένων Date
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Παράδειγμα χρήσης κληρονομικότητας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα χρήσης κληρονομικότητας Κληρονομικότητα Employee name hiringdate getname gethiringdate Οι παράγωγες κλάσεις κληρονομούν τα πεδία και τις μεθόδους
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές ΓΕΝΙΚΕΥΜΕΝΕΣ ΚΛΑΣΕΙΣ Stack Θυμηθείτε πως ορίσαμε μια στοίβα ακεραίων public class IntStackElement { private int value; private
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή Οποιαδήποτε κλάση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Late Binding Αφηρημένες κλάσεις Interfaces διεπαφές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός Late Binding Αφηρημένες κλάσεις Interfaces διεπαφές Κληρονομικότητα HourlyEmployee hours wagerate getpay tostring Employee name hiringdate getname
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 7 : ΣΥΝΘΕΤΕΣ ΚΛΑΣΕΙΣ ΚΑΙ ΜΕΘΟΔΟΙ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 7 : ΣΥΝΘΕΤΕΣ ΚΛΑΣΕΙΣ ΚΑΙ ΜΕΘΟΔΟΙ Κλάσεις που δημιουργούνται μόνο από δεδομένα μόνο πρωταρχικών τύπων public class Human { private String name; private int height;
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι Μαθήματα από το lab Boolean μεταβλητές: Συνήθως τα ονόματα που δίνουμε στις boolean μεταβλητές περιγράφουν
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες ANTIKEIMENA MEΣΑ ΣΕ ΑΝΤΙΚΕΙΜΕΝΑ Αντικείμενα μέσα σε αντικείμενα Εκτός
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Στην άσκηση αυτή θα υλοποιήσετε μια κλάση RandomVector η οποία διαχειρίζεται ένα τυχαίο διάνυσμα ακεραίων το οποίο μπορεί να έχει οποιοδήποτε
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Constructors Κλάσεις και αντικείμενα Ορισμός κλάσης: class
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπερφόρτωση Αντικείμενα σαν ορίσματα ΥΠΕΡΦΟΡΤΩΣΗ H κλάση Car Μια κλάση που κρατάει την θέση ενός αυτοκινήτου. Μέθοδος move(): μετακινεί το αυτοκίνητο κατά μία
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Ένα ιστόγραμμα τιμών μετράει για ένα σύνολο από τιμές πόσες φορές εμφανίστηκε η κάθε τιμή. Για παράδειγμα
Διαβάστε περισσότεραΕργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι
Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies Μαθήματα από το εργαστήριο Όταν η εκφώνηση σας ζητάει να φτιάξετε μία μέθοδο που παίρνει
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες Μέθοδοι tostring και equals Αντικείμενα μέσα σε αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες Μέθοδοι tostring και equals Αντικείμενα μέσα σε αντικείμενα ΑΝΤΙΚΕΙΜΕΝΑ ΜΕ ΠΙΝΑΚΕΣ Θα υλοποιήσετε την κλάση DynamicArray. Η κλάση θα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Πολυμορφισμός Late Binding Αφηρημένες κλάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Πολυμορφισμός Late Binding Αφηρημένες κλάσεις Κληρονομικότητα Η κληρονομικότητα είναι κεντρική έννοια στον αντικειμενοστραφή προγραμματισμό.
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing ΕΛΕΓΧΟΣ ΙΣΟΤΗΤΑΣ Έλεγχος ισότητας Έχουμε πει ότι όταν ελέγχουμε ισότητα μεταξύ αντικειμένων
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Tοπικές μεταβλητές To αντικείμενο this Accessor, Mutator μέθοδοι Ορισμός κλάσης και αντικειμένων Μία κλάση Κ ορίζεται από
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, tostring Αντικείμενα ως παράμετροι Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Πολυμορφισμός Late Binding
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Πολυμορφισμός Late Binding Κληρονομικότητα Η κληρονομικότητα είναι κεντρική έννοια στον αντικειμενοστραφή προγραμματισμό. Η ιδέα είναι να ορίσουμε
Διαβάστε περισσότεραΤύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 14: Γενικός Κώδικας (Generics) Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως επιστρεφόμενες τιμές Πίνακες με αντικείμενα Βαθιά και ρηχά αντίγραφα Copy Constructor Η αναφορά this Σύνθεση και αναφορές ΑΝΤΙΚΕΙΜΕΝΑ
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Copy Constructor Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies class ArrayVar { public static void main(string[] args){ int[] array = {1,2,3; int x = 4; increment(array); for (int
Διαβάστε περισσότεραΤο πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.
Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα Downcasting Πολυμορφισμός Late Binding
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Downcasting Πολυμορφισμός Late Binding tostring και equals Είπαμε ότι η Java για κάθε αντικείμενο «περιμένει» να δει τις μεθόδους tostring και
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Η ΜΕΤΑΒΛΗΤΗ THIS Η μεταβλητή this Η μεταβλητή (παράμετρος) this Μια κρυφή παράμετρος η οποία περνάει σε κάθε μέθοδο και κρατάει μια αναφορά
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies class Person private String name; public Person(String name) this.name
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies class Person { private String name; public Person(String name){ this.name
Διαβάστε περισσότεραWrapper Classes, Abstract Classes and Interfaces
Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους
Διαβάστε περισσότεραΠεριεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4
Διαβάστε περισσότεραΔιασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD
(Object Oriented Programming) Διασυνδέσεις / Διεπαφές PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος Διεπαφές/Διασυνδέσεις (Interfaces) 2 Διεπαφές/Διασυνδέσεις (Interfaces)
Διαβάστε περισσότεραΔιάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Διαβάστε περισσότεραΠρογράμματα με δομή Κληρονομικότητας
Προγράμματα με δομή Κληρονομικότητας Επέκταση ιεραρχίας με νέες κλάσεις Επέκταση ιεραρχίας με νέες κλάσεις Οι κλάσεις που δεν προορίζονται για δημιουργία στιγμιοτύπων, αλλά προορίζονται να χρησιμοποιηθούν
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Copy Constructor Deep and Shallow Copies class Person { private String name; public Person(String name){ this.name
Διαβάστε περισσότεραpublic class ArrayStack implements Stack {
public class ArrayStack implements Stack { private static final int DEF_STACK_SIZE=2; //Array of objects private Object[] S; private int index ; // index, top, last, position // Returns the last item of
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΕισαγωγή στον Προγ/μό Η/Υ
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός
Διαβάστε περισσότεραΠρογραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
Διαβάστε περισσότεραΑνάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee
Μία εταιρεία πληρώνει τους εργαζόμενους της σε εβδομαδιαία βάση. Οι αποδοχές των εργαζόμενων υπολογίζονται με τέσσερις διαφορετικούς τρόπους : Α) Μισθωτοί (SalariedEmployee), πληρώνονται με σταθερό ποσό
Διαβάστε περισσότεραΔιάλεξη 05: Αφηρημένοι Τύποι Δεδομένων
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων
Διαβάστε περισσότεραΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα
Διαβάστε περισσότεραΚατασκευαστές. Μέθοδοι Κατασκευής (Constructors).
Κατασκευαστές Μέθοδοι Κατασκευής (Constructors). Οι κατασκευαστές (constructors) είναι μέθοδοι που εκτελούνται όταν κατασκευάζεται ένα αντικείμενο. Μια τάξη μπορεί να έχει αρκετούς κατασκευαστές, οι οποίοι
Διαβάστε περισσότεραOι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:
3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.
Διαβάστε περισσότερα. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014
.. Μεθοδολογία Προγραμματισμού Abstract Κλάσεις και Interfaces Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραHelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1
HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, tostring Αντικείμενα ως παράμετροι Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
Διαβάστε περισσότεραΔομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.
Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΑπό τη UML στον Κώδικα. Μέρος Β
Από τη UML στον Κώδικα Μέρος Β περιεχόμενα παρουσίασης Αμφίδρομες συσχετίσεις Συσσωμάτωση Σύνθεση Διαγράμματα ακολουθίας αμφίδρομες συσχετίσεις Μία αμφίδρομη συσχέτιση υλοποιείται με δύο μονόδρομες. Υπάρχει
Διαβάστε περισσότεραΣυλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
Διαβάστε περισσότεραΑπλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή
Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος
Διαβάστε περισσότεραΒασικά της γλώσσας JAVA
17 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4 φοιτητές οπού ο καθένας έχει ένα
Διαβάστε περισσότεραpublic void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο
Διαβάστε περισσότεραΥπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods
(Object Oriented Programming) Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Περιεχόμενα Μαθήματος
Διαβάστε περισσότερα