Μετάβαση στο περιεχόμενο

Αντικειμενοστρεφής Προγραμματισμός — Ιούνιος 2025

Μεταγραφή από τις φωτογραφίες IMG_4067, IMG_4071 και IMG_4073 (σελίδες 1, 2 και 4 από 4).

IMG_4067.jpg

Αντικειμενοστρεφής Προγραμματισμός – Οντοκεντρικός Προγραμματισμός

Εξεταστική Περίοδος: Ιούνιος 2025 Π. Χατζηδούκας – Δ. Κουτσομητρόπουλος Διάρκεια: 2:30

Όνομα: ____________________ Επώνυμο: ____________________ ΑΜ: ____________________ Έτος Σπουδών: ____________________ Μάθημα: ____________________

Θέμα 1ο (2 μονάδες): Ποια είναι η έξοδος στις παρακάτω περιπτώσεις; Απαντήστε και δώστε σύντομη εξήγηση στο χώρο που δίνεται.

a.

ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(15);
list.add(1, 20);
System.out.println(list);

b.

int[] arr = {1, 3, 2, 4, 5};
for (int i = 0; i < arr.length / 2; i++) {
    int temp = arr[i];
    arr[i] = arr[arr.length - 1 - i];
    arr[arr.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(arr));

c.

ArrayList<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.remove("Charlie");
System.out.println(names.size());

d.

class A {
    int x = 10;
    void print() { System.out.println(x); }
}

class B extends A {
    int x = 20;
    void print() { System.out.println(x); }
}

public class Test {
    public static void main(String[] args) {
        A obj = new B();
        obj.print();
    }
}

IMG_4071.jpg

Θέμα 2ο (3 μονάδες): Ποια είναι η έξοδος στις παρακάτω περιπτώσεις; Απαντήστε και δώστε σύντομη εξήγηση στο χώρο που δίνεται.

a.

Stack<Integer> stack = new Stack<>();
for (int i = 3; i > 0; i--)
    stack.push(i);

for (int i = 0; i <= 3; i++)
    System.out.print(stack.pop() + " ");

b.

ArrayList<Integer> list =
    new ArrayList<>(Arrays.asList(1, 8, 4, 11, 5));
for (int i = 0; i < list.size(); i++) {
    if (list.get(i) % 2 == 1) list.remove(i);
}
System.out.println(list);

c.

int[] arr = new int[5];
System.out.println(arr[2]);

d.

class Parent {
    void print() { System.out.println("Parent"); }
}

class Child extends Parent {
    void print() { System.out.println("Child"); }
    void onlyInChild() { System.out.println("Child only"); }
}

public class Test {
    public static void main(String[] args) {
        Parent obj = new Child();
        obj.onlyInChild();
    }
}

Θέμα 3ο (1,5 μονάδες): Τι ζητήματα έχει ο παρακάτω κώδικας; Υλοποιήστε μια επέκταση της παρακάτω μεθόδου ώστε να λειτουργεί σωστά. Υλοποιήστε σε Java ή C++.

double reciprocal(int a) {
    return 1 / a;
}

[Λείπει από τη φωτογραφία: σελίδα 3/4 (Θέμα 4)]

IMG_4073.jpg

ΘΕΜΑ 5ο (1 μονάδα): Επιλέξτε τη σωστή απάντηση για κάθε ερώτηση παρακάτω.

i. Μια friend συνάρτηση: - [ ] a. Μπορεί να έχει πρόσβαση μόνο σε public members μιας κλάσης - [ ] b. Μπορεί να έχει πρόσβαση μόνο σε private members μιας κλάσης - [ ] c. Μπορεί να έχει πρόσβαση μόνο σε protected members μιας κλάσης - [ ] d. Μπορεί να έχει πρόσβαση σε όλα τα members μιας κλάσης

ii. Μπορούμε να έχουμε πολυμορφισμό όταν χρησιμοποιούμε: - [ ] a. Δείκτη κλάσης βάσης σε αντικείμενο της κλάσης βάσης - [ ] b. Δείκτη παραγόμενης κλάσης σε αντικείμενο της παραγόμενης κλάσης - [ ] c. Δείκτη κλάσης βάσης σε αντικείμενο της παραγόμενης κλάσης - [ ] d. Δείκτη παραγόμενης κλάσης σε αντικείμενο της κλάσης βάσης

iii. Ο constructor της παραγόμενης κλάσης καλεί τον constructor της κλάσης βάσης: - [ ] a. Άμεσα, μέσα στο σώμα του constructor - [ ] b. Άμεσα, με super - [ ] c. Άμεσα, στη member initialization list - [ ] d. Μπορεί να καλέσει μόνο έμμεσα, τον default

iv. Όταν δημιουργείται ένα νέο αντικείμενο με new: - [ ] a. Δεσμεύεται χώρος στη στοίβα (stack) - [ ] b. Δεσμεύεται χώρος στο σωρό (heap) και αποδεσμεύεται αυτόματα όταν βγει εκτός εμβέλειας - [ ] c. Δεσμεύεται χώρος στη στοίβα (stack) και αποδεσμεύεται αυτόματα όταν βγει εκτός εμβέλειας - [ ] d. Δεσμεύεται χώρος στο σωρό (heap)

v. Όταν υπερφορτώνουμε έναν δυαδικό τελεστή ως μέλος κλάσης: - [ ] a. Το αριστερό μέλος του τελεστή είναι το αντικείμενο για το οποίο καλείται - [ ] b. Το δεξιό μέλος του τελεστή είναι το αντικείμενο για το οποίο καλείται - [ ] c. Το αριστερό μέλος του τελεστή είναι το όρισμα της συνάρτησης - [ ] d. Θα πρέπει να δηλωθεί ως friend


✖ Βρήκα λάθος στη μεταγραφή