chmo Δημοσ. 16 Μαΐου 2011 Δημοσ. 16 Μαΐου 2011 Διαβάζω κάποια θέματα παλιών εξετάσεων στο μάθημα της JAVA και θα ήθελα να με βοηθήσετε σε θέματα κατανόησης κάποιων πραγμάτων. Βασικά δεν έχω τις απαντήσεις και θα ήθελα να μου πείτε αν η απάντηση που δίνω είναι σωστή η αν όχι και γιατί. Θέμα 1. Υπάρχει αυτό το δεδομένο >public class Person { private String name; public Person(String name) { this.name = name; } public String getName() { return name; } public String toString() { return name; } } public class Student extends Person { private int studentNumber; public Student(String name, int number) { super(name); studentNumber = number; } public String toString() { return studentNumber + " " + getName(); } } public class Lecturer extends Person { private String officeBuilding; private String officeNumber; public Lecturer(String name, String building, String number) { super(name); officeBuilding = building; officeNumber = number; } public String toString() { return officeBuilding + " " + officeNumber + " " + getName(); } } Σκεφτείτε αυτό το κομμάτι κώδικα >ArrayList<Person> people = new ArrayList<Person>(); people.add(new Person("Adam")); people.add(new Student("John",34275)); people.add(new Lecturer("Bill","Pev2","3C10")); people.add(new Student("Mary",34776)); for (Person aPerson : people) { System.out.println(aPerson.toString()); } Ερώτιση: Τι εκτυπώνεται όταν ο κώδικας εκτελείται; Απάντιση (δικιά μου) Επειδή όλες οι κατηγορίες είναι "υποκλάσεις" της People θα τυπώσει όλα τα ονόματα. (είναι σωστό)
nrkmaiden Δημοσ. 16 Μαΐου 2011 Δημοσ. 16 Μαΐου 2011 (δε ξερω αν εννοεις αυτο στη απαντηση σου)Θα εμφανισει ολα τα στοιχεια της λιστας people....
djcat Δημοσ. 17 Μαΐου 2011 Δημοσ. 17 Μαΐου 2011 Θα τυπώσει Adam 34275 John Pev2 3C10 Bill 34776 Mary Κάθε αντικείμενο θα καλέσει τη δικιά του μέθοδο. Αν δεν είχε θα καλούσε τη μέθοδο της Parent class.
chmo Δημοσ. 17 Μαΐου 2011 Μέλος Δημοσ. 17 Μαΐου 2011 @djcat, @nrkmaiden ευχαριστώ πολύ. Αυτό πίστευα κι εγώ αλλά ήθελα να το επιβεβαιώσω. Για να μην ανοίγω νέο thread συνεχίζω εδώ με το επόμενο θέμα. Θέμα 2. Έχουμε 4 classes: Person, Teacher, Student, PhDStudent. Η Teacher και η Student είναι subclasses της Person. Η PhDStudent είναι subclass της Student. 1. Ποια από τις επόμενα είναι σωστά και ποια λάθος. >Person p1 = new Student(); Σωστό Person p2 = new PhDStudent(); Σωστό PhDStudent phd1 = new Student(); Λάθος Teacher t1 = new Person(); Λάθος Student s1 = new PhDStudent(); Σωστό 2. Υποθέστε πως έχουμε τις ακόλουθες νόμιμες δηλώσεις > Person p1 = new Person(); Person p2 = new Person(); PhDStudent phd1 = new PhDStudent(); Teacher t1 = new Teacher(); Student s1 = new Student(); Ποιες από τις ακόλουθες είναι σωστές ή όχι. s1 = p1; Σωστό s1 = p2; Σωστό p1 = s1; Λάθος t1 = s1; Λάθος s1 = phd1; Σωστό phd1 = s1; Λάθος
djcat Δημοσ. 18 Μαΐου 2011 Δημοσ. 18 Μαΐου 2011 Γιατί δεν τα δοκιμάζεις. Έτσι θα τα μάθεις καλύτερα. Προγραμματισμό αν δεν γράψεις κώδικα δε μαθαίνεις! Και μετά λες τις απορίες σου...
ΠάρηςΓ Δημοσ. 18 Μαΐου 2011 Δημοσ. 18 Μαΐου 2011 Γιατί δεν τα δοκιμάζεις. Έτσι θα τα μάθεις καλύτερα. Προγραμματισμό αν δεν γράψεις κώδικα δε μαθαίνεις! Και μετά λες τις απορίες σου... Ελα ντε... Δε ξερω τι περιλαμβανει η πιστοποιηση αλλα οταν πας στα νηματα πχ πως θα βγαλεις ακρη αν δεν εχεις πειραματιστεί;;;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.