Mock Questions

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Mock Questions as PDF for free.

More details

  • Words: 1,235
  • Pages: 3
ΘΕΜΑ 1ο Ποιοι από τους παρακάτω ισχυρισμούς είναι σωστοί και ποιοι λάθος (χωρίς εξήγηση). (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)

Η προσπέλαση μιας μεθόδου γίνεται μόνο με την αποστολή μηνύματος. Ένα catch μπλοκ δεν ενεργοποιείται αν δεν εγερθεί εξαίρεση. Ο δημιουργός καλείται πάντοτε άμεσα (όχι έμμεσα) στη δημιουργία στιγμιοτύπου. Μια μέθοδος είναι υποχρεωτικό να έχει παραμέτρους (ορίσματα). Ένα buffered stream είναι ένα είδος φίλτρου. Κάθε πρόγραμμα Java πρέπει να διαθέτει τουλάχιστον μια κλάση με το όνομα του αρχείου που το περιέχει. Ένας δημιουργός μιας κλάσης συμπεριφέρεται όπως μια μέθοδος της κλάσης. Όλοι οι μέθοδοι μιας κλάσης πρέπει να δηλώνονται ως private. Η αντιγραφή των δεδομένων ενός αντικειμένου σ’ ένα άλλο δεν μπορεί να γίνει με τον τελεστή ανάθεσης/καταχώρησης. Ένα φίλτρο δεν μπορεί να χρησιμοποιηθεί αυτόνομα, αλλά πάντα σε αναφορά με κάποιο stream αρχείου. Ο προσδιοριστής final μιας κλάσης δηλώνει ότι αυτή δεν έχει στιγμιότυπα. Ένα try μπλοκ μπορεί να έχει περισσότερα του ενός catch μπλοκς. Οι διεπαφές δεν σχηματίζουν ξεχωριστή ιεραρχία από αυτή των κλάσεων. Ένα byte stream δεδομένων εξόδου έχει μεγαλύτερη μονάδα αποθήκευσης από ένα byte stream αρχείου εξόδου. Η άμεση πρόκληση εξαίρεσης δημιουργείται όταν χρησιμοποιείται η εντολή throw στην επικεφαλίδα μιας μεθόδου.

ΘΕΜΑ 2ο Δίνεται η εξής περιγραφή: «Υπάρχο υν διάφορα είδη συσκευών, ό πως οι ηλεκτρικές, οι μηχανικές και οι ηλεκτρονικές συσκευές. Ηλεκτρικές συσκευές είναι τα είναι τα οι ηλεκ. σκούπες και τα ηλεκ. σίδερα. Μηχανικές συσκευές είναι τα ποδήλατα και οι κλειδαριές, ενώ ηλεκτρονικές οι υπολογιστές. Υπάρχουν δύο ηλεκ. σκούπες, η ΧΟΥΒΕΡ1 και ΖΙΜΕΝΣ2, ένα ποδήλατο, το ΙΝΤΕΑΛ3, ένας υπολογιστής, ο ΠΛΑΙΣΙΟ4, και δύο ηλεκ. Σίδερα, το ΦΙΛΙΠΣ5 και το ΧΟΥΒΕΡ6». α) Συμπληρώστε ένα πίνακα, ό πως ο πίνακας Α παρακάτω, ό που στην πρώτη στήλη να καταγράψετε όλες τις κλάσεις που αναφέρονται στην παραπάνω περιγραφή και στη δεύτερη στήλη τα στιγμιότυπά τους, σύμφωνα με το παράδειγμα. Αν κάποια κλάση δεν έχει στιγμιότυπα, η θέση στη διπλανή στήλη θα παραμείνει κενή. β) Συμπληρώστε ένα πίνακα, όπως ο πίνακας Β παρακάτω, όπου στην πρώτη στήλη να καταγράψετε όλες τις κλάσεις που καταγράψατε στον πίνακα Α και στη δεύτερη στήλη τις άμεσες υπερκλάσεις τους, σύμφωνα με το παράδειγμα. [4] ΚΛΑΣΗ Φοιτητής

ΣΤΙΓΜΙΟΤΥΠΑ Γιώργος, Πέτρος

(Α)

ΚΛΑΣΗ Φοιτητής

ΥΠΕΡΚΛΑΣΗ Άνθρωπος

(Β)

γ) Σχεδιάστε μια ιεραρχία που να περιλαμβάνει όλες τις κλάσεις και τα στιγμιότυπα. δ) Αν η ιεραρχία αυτή είναι η τελική, δηλ. δεν υπάρχουν άλλες κλάσεις ή στιγμιότυπα, γράψτε γενικό κώδικα Java που να υλοποιεί την ιεραρχία που σχεδιάσατε. Γενικός κώδικας σημαίνει: (1) μόνο τις (επι)κεφαλίδες με κενό σώμα, για τον ορισμό των κλάσεων, και (2) κλήση των αυτόματων δημιουργών (δηλ. αυτών χωρίς ορίσματα) για τη δημιουργία στιγμιοτύπων, όπου απαιτείται.

ΘΕΜΑ 3ο α) Γράψτε μια μέθοδο Java (changeString), που παίρνει σαν όρισμα ένα αλφαριθμητικό s και επιστρέφει το αλφαριθμητικό με τις εξής αλλαγές: κάθε ‘k’ έχει αντικατασταθεί με ‘x’, αν τα ‘k’ είναι περισσότερα από τα ‘x’, και κάθε ‘x’ έχει αντικατασταθεί με ‘k’, αν τα ‘x’ είναι περισσότερα από τα ‘k’. Αν δεν υπάρχουν ούτε ‘k’ ούτε ‘x’, τότε επιστρέφει το μήνυμα true. β) Γράψτε ένα πρόγραμμα Java που να διαβάζει 50 λέξεις από ένα αρχείο (words.dat), να αλλάζει τα ‘k’ των λέξεων σε ‘x’, αν τα ‘k’ είναι περισσότερα από τα ‘x’, και αντίστροφα, και να τις τυπώνει στην οθόνη, εκτός από αυτές που δεν έχουν ούτε ‘k’ ούτε ‘x’. Κάθε λέξη είναι σε διαφορετική γραμμή στο αρχείο. Να χρησιμοποιηθεί η μέθοδος στο (α). [Στο (α) για τη διαχείριση του αλφαριθμητικού να χρησιμοποιηθούν μόνο από τις εξής μεθόδους: charAt (int index), equals (String s), indexOf (char ch), length(), replace (char oldChar, char newChar), substring (int beginIndex)] ΘΕΜΑ 4ο Δίνεται το παρακάτω πρόγραμμα Java. (α) Εξηγείστε συνοπτικά ποιό είναι το αποτέλεσμα (εσωτερικό και εξωτερικό) της κάθε γραμμής κώδικα 1-17 της μεθόδου main της κλάσης ‘RunParent’. (β) Αν στην κλάση Child υπήρχε η δήλωση «double value = 3.0;», τι θα άλλαζε στα αποτελέσματα; Εξηγείστε. (γ) Αν η «String message;» γίνει «private String message;», θα υπάρξει κάποιο πρόβλημα κατά την εκτέλεση της main; Αν ναι, πού και γιατί; (δ) Αν η έκφραση «super(value)» στην Child έλειπε, θα άλλαζε κάποιο αποτέλεσμα (εσωτερικό ή εξωτερικό); Ποιο και γιατί; (ε) Σχεδιάστε την ιεραρχία (κλάσεων και στιγμιοτύπων) που θα δημιουργήσει η Java με την εκτέλεση της main. class Parent{ double value = 0; public Parent(){ value = 1.0; System.out.println("Parent value " +value);} public Parent(double value){ System.out.println("Parent value " + value);} public void setValue (double value){ this.value -= value;}} class Child extends Parent{ String message; public Child (String message){ this.message = message; System.out.println("Child "+message);} public Child (double value){ super(value); this.value = value++; System.out.println("Child value " +value);} public void setMessage (String message){ this.message = message;}

public void setValue1 (double value) {this.value += value;} public void setValue2 (double value) {super.setValue (--value);}} public class RunParent{ public static void main(String args []){ (1) Parent P = new Parent(); (2) Child C1 = new Child(5.5); (3) Child C2 = new Child("Second Child"); (4) System.out.println (C1.value); (5) System.out.println (C2.value); (6) System.out.println (C1.message); (7) System.out.println (C2.message); (8) System.out.println (P.value); (9) C1.setMessage ("First Child"); (10) System.out.println (C1.message); (11) C2.setValue (7.5); (12) System.out.println (C2.value); (13) System.out.println (P.value); (14) C1.setValue1 (3); (15) System.out.println (C1.value); (16) C1.setValue2 (8.5); (17) System.out.println (C1.value);}}

ΘΕΜΑ 5ο Γράψτε πρόγραμμα Java που όταν τρέχει να εμφανίζει το συγκεκριμένο πλαίσιο (υποκλάση της JFrame) το οποίο περιέχει 4 αντικείμενα τύπου JTextField μεγέθους 8 χαρακτήρων το καθένα, 4 JLabel και δύο κουμπιά JButton. O διαχειριστής διάταξης όλου του πλαισίου να είναι ο BorderLayout. Λειτουργίες: 1. Ο χρήστης συμπληρώνει 3 ακεραίους στα τρία πρώτα JTextField. 2. Όταν στη συνέχεια πατήσει το κουμπί “Generate Randoms - Max”, το πρόγραμμα υπολογίζει ένα πλήθος τυχαίων αριθμών Δ ανάμεσα στο κάτω και το άνω όριο, και υπολογίζει τη μέγιστη τιμή ανάμεσα σε αυτούς τους τυχαίους αριθμούς. Αυτή την τιμή την εμφανίζει στο τελευταίο πεδίο κειμένου. 3. Πατώντας το κουμπί “Clear” να καθαρίζονται όλες οι περιοχές κειμένου. Κλάσεις και μέθοδοι που πιθανόν να χρειάζονται για το θέμα • Για τυχαίους αριθμούς θα πρέπει να δημιουργήσετε ένα στιγμιότυπο της κλάσης Random του πακέτου java.util.Random και στη συνέχεια η μέθοδος nextDouble() αυτής της κλάσης επιστρέφει ένα τυχαίο double αριθμό μεταξύ 0 και 1. • Σας δίνονται οι μέθοδοι String getText() και setText(String t) της κλάσης JTextField. • Σας δίδεται η μέθοδος getSelectedIndex() της κλάσης JComboBox. • Η μέθοδος parseDouble(String t) της κλάσης Double, μετατρέπει ένα String σε double και τον επιστρέφει. • Η μέθοδος parseInt(String t) της κλάσης Integer, μετατρέπει ένα String σε int και τον επιστρέφει. • Η μέθοδος intValue() της κλάσης Double, μετατρέπει ένα Double σε ακέραιο και τον επιστρέφει. • Για τα events που απαιτούνται σας δίνεται ως βοήθεια το παρακάτω απόσπασμα κώδικα. public void actionPerformed(ActionEvent evt) { Object source = evt.getSource();

ΘΕΜΑ 6ο Να αναπτύξετε ένα Applet μεγέθους 500x500, που: (α) Να εμφανίζει 10 τετράγωνα διαστάσεων 50x50 το ένα εφαπτόμενο με το άλλο στο πάνω μέρος του Applet. (β) Όταν ο χρήστης κινεί το ποντίκι μέσα στα πλαίσια του πρώτου τετραγώνου πάνω αριστερά τότε να εμφανίζονται δίπλα στον mouse pointer οι συντεταγμένες του σημείου που βρίσκεται εκείνη τη στιγμή το ποντίκι, με τη μορφή π.χ. (15,25). (γ) Να δώσετε τον κατάλληλο κώδικα HTML που να ενσωματώνει το συγκεκριμένο Applet σε κάποια ιστοσελίδα. class java.awt.Graphics: drawLine(int x1, int y1, int x2, int y2) drawRect(int x, int y, int width, int height) drawString(String str, int x, int y)

Τα συμβάντα ποντικιού υλοποιούνται από το interface MouseListener, το οποίο έχει 2 μεθόδους: void mouseMoved(java.awt.event.MouseEvent evt) void mouseDragged(java.awt.event.MouseEvent evt) Χρήσιμες μέθοδοι των αντικειμένων MouseEvent: getX() και getY().

Related Documents