Προς το περιεχόμενο

Θέματα εξετάσεων JAVA


chmo

Προτεινόμενες αναρτήσεις

Δημοσ.

Διαβάζω κάποια θέματα παλιών εξετάσεων στο μάθημα της 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 θα τυπώσει όλα τα ονόματα. (είναι σωστό)

Δημοσ.

Θα τυπώσει

 

Adam

34275 John

Pev2 3C10 Bill

34776 Mary

 

Κάθε αντικείμενο θα καλέσει τη δικιά του μέθοδο. Αν δεν είχε θα καλούσε τη μέθοδο της Parent class.

Δημοσ.

@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;  Λάθος

Δημοσ.

Γιατί δεν τα δοκιμάζεις. Έτσι θα τα μάθεις καλύτερα.

Προγραμματισμό αν δεν γράψεις κώδικα δε μαθαίνεις! Και μετά λες τις απορίες σου...

Δημοσ.

Γιατί δεν τα δοκιμάζεις. Έτσι θα τα μάθεις καλύτερα.

Προγραμματισμό αν δεν γράψεις κώδικα δε μαθαίνεις! Και μετά λες τις απορίες σου...

Ελα ντε... Δε ξερω τι περιλαμβανει η πιστοποιηση αλλα οταν πας στα νηματα πχ πως θα βγαλεις ακρη αν δεν εχεις πειραματιστεί;;;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...