top 30 oops interview questions
Αυτό το σεμινάριο παρέχει ένα πλήρες σύνολο συχνών ερωτήσεων και απαντήσεων συνέντευξης με αντικειμενοστρεφή προγραμματισμό (OOP):
Η ανάπτυξη λογισμικού έχει περίπου 70 χρόνια ιστορίας, όπου εφευρέθηκαν διάφορες γλώσσες όπως FORTRAN, Pascal, C, C ++. Υπήρχαν μια σειρά από δηλώσεις που ενεργούν ως εντολές που δόθηκαν σε υλικό για την εκτέλεση ορισμένων βασικών μαθηματικών υπολογισμών, κάνοντας διαδικαστικές γλώσσες για το σχεδιασμό διαφόρων εφαρμογών λογισμικού.
Με την εφεύρεση του Διαδικτύου, χρειάστηκαν ασφαλείς, σταθερές και ανεξάρτητες από την πλατφόρμα και στιβαρές γλώσσες στο σχεδιασμό σύνθετων εφαρμογών.
Ο αντικειμενοστραφής προγραμματισμός είναι ανεξάρτητος από την πλατφόρμα, φορητός, ασφαλής και εξοπλισμένος με διάφορες έννοιες όπως ενθυλάκωση, αφαίρεση, κληρονομιά και πολυμορφισμό.
Τα πλεονεκτήματα του OOPS είναι η επαναχρησιμοποίηση, η επεκτασιμότητα και η αρθρωτότητα που βελτιώνουν την παραγωγικότητα, ευκολότερα στη συντήρηση λόγω modularity, ταχύτερο και χαμηλότερο κόστος ανάπτυξης λόγω επαναχρησιμοποίησης κώδικα, παράγει ασφαλείς και υψηλής ποιότητας εφαρμογές.
Τι θα μάθετε:
Βασικές Αντικειμενοστρεφείς Προγραμματικές Έννοιες
Ο αντικειμενοστραφής προγραμματισμός περιλαμβάνει πνευματικά αντικείμενα, δεδομένα και συμπεριφορά που σχετίζονται με αυτό για να φέρει λύσεις σε επιχειρηματικά προβλήματα. Στη γλώσσα προγραμματισμού Java, για να σχεδιάσουν λύσεις για επιχειρηματικά προβλήματα, οι προγραμματιστές εφαρμόζουν έννοιες όπως αφαίρεση, ενθυλάκωση, κληρονομιά και πολυμορφισμό.
Διάφορες έννοιες όπως Αφαίρεση που αγνοεί άσχετες λεπτομέρειες, Ενθυλάκωση που επικεντρώνεται στο ελάχιστο που απαιτείται χωρίς να αποκαλύπτεται πολυπλοκότητα στις εσωτερικές λειτουργίες, Κληρονομία να κληρονομήσουν τις ιδιότητες της γονικής κλάσης ή να εφαρμόσουν πολλές κληρονομιές χρησιμοποιώντας μια διεπαφή και Πολυμορφισμός που επεκτείνει τις ιδιότητες της μεθόδου υπερφόρτωσης (στατικός πολυμορφισμός) και της μεθόδου υπέρβασης (δυναμικός πολυμορφισμός).
Οι πιο συχνές ερωτήσεις συνέντευξης OOPS
Ε # 1) Εξηγήστε εν συντομία τι εννοείτε με το Object Oriented Programming στην Java;
Απάντηση: Το OOP ασχολείται με αντικείμενα, όπως οντότητες πραγματικής ζωής, όπως στυλό, κινητό, τραπεζικό λογαριασμό που έχει κατάσταση (δεδομένα) και συμπεριφορά (μεθόδους).
Με τη βοήθεια της πρόσβασης, η πρόσβαση σε αυτά τα δεδομένα και τις μεθόδους διασφαλίζεται. Οι έννοιες της ενθυλάκωσης και της αφαίρεσης προσφέρουν απόκρυψη δεδομένων και πρόσβαση σε βασικά στοιχεία, κληρονομικότητα και πολυμορφισμό βοηθούν στην επαναχρησιμοποίηση κώδικα και στην υπερφόρτωση / υπέρβαση μεθόδων και κατασκευαστών, καθιστώντας τις εφαρμογές ανεξάρτητες από την πλατφόρμα, ασφαλείς και ισχυρές χρησιμοποιώντας γλώσσες όπως η Java.
Ε # 2) Εξηγήστε Είναι η Java μια καθαρή γλώσσα με αντικείμενο το αντικείμενο;
Απάντηση: Η Java δεν είναι μια εντελώς καθαρή αντικειμενοστρεφής γλώσσα προγραμματισμού. Οι ακόλουθοι είναι οι λόγοι:
- Η Java υποστηρίζει και χρησιμοποιεί πρωτόγονους τύπους δεδομένων όπως int, float, double, char κ.λπ.
- Οι πρωτόγονοι τύποι δεδομένων αποθηκεύονται ως μεταβλητές ή στη στοίβα αντί για το σωρό.
- Στην Java, οι στατικές μέθοδοι μπορούν να έχουν πρόσβαση σε στατικές μεταβλητές χωρίς τη χρήση ενός αντικειμένου, σε αντίθεση με τις αντικειμενοστρεφείς έννοιες.
Ε # 3) Περιγράψτε την τάξη και το αντικείμενο στην Java;
Απάντηση: Η τάξη και το αντικείμενο διαδραματίζουν αναπόσπαστο ρόλο σε αντικειμενοστρεφείς γλώσσες προγραμματισμού όπως η Java.
- Η κλάση είναι ένα πρωτότυπο ή ένα πρότυπο που έχει κατάσταση και συμπεριφορά που υποστηρίζεται από ένα αντικείμενο και χρησιμοποιείται στη δημιουργία αντικειμένων.
- Το αντικείμενο είναι μια παρουσία της τάξης, για παράδειγμα, Ο άνθρωπος είναι μια τάξη με την κατάσταση που έχει σπονδυλικό σύστημα, εγκέφαλο, χρώμα και ύψος και έχει συμπεριφορά όπως canThink (), mampuToSpeak () κ.λπ.
Q # 4) Ποιες είναι οι διαφορές μεταξύ κλάσης και αντικειμένων στην Java;
Απάντηση: Ακολουθούν μερικές σημαντικές διαφορές μεταξύ κλάσης και αντικειμένων στην Java:
Τάξη | Αντικείμενο |
---|---|
Τα πραγματικά παραδείγματα της τάξης μπορεί να είναι • Μια συνταγή για την προετοιμασία φαγητού. • Μπλε εκτυπώσεις για κινητήρα αυτοκινήτου. | Παραδείγματα πραγματικών αντικειμένων μπορεί να είναι • Ένα φαγητό παρασκευασμένο από συνταγή. • Κινητήρας κατασκευασμένος σύμφωνα με τις μπλε εκτυπώσεις. |
Η τάξη είναι μια λογική οντότητα | Το αντικείμενο είναι φυσική οντότητα |
Η κλάση είναι ένα πρότυπο από το οποίο μπορεί να δημιουργηθεί αντικείμενο | Το αντικείμενο είναι μια παρουσία της κλάσης |
Το Class είναι ένα πρωτότυπο που έχει την κατάσταση και τη συμπεριφορά παρόμοιων αντικειμένων | Τα αντικείμενα είναι οντότητες που υπάρχουν στην πραγματική ζωή, όπως κινητά, ποντίκια ή πνευματικά αντικείμενα όπως τραπεζικός λογαριασμός |
Η τάξη δηλώνεται με λέξη-κλειδί κατηγορίας, όπως όνομα κλάσης κλάσης {} | Το αντικείμενο δημιουργείται μέσω νέας λέξης-κλειδιού ως Employee emp = new Employee (); |
Κατά τη δημιουργία τάξης, δεν υπάρχει εκχώρηση μνήμης | Κατά τη δημιουργία αντικειμένων, η μνήμη εκχωρείται στο αντικείμενο |
Υπάρχει μόνο μονόδρομη κλάση που ορίζεται χρησιμοποιώντας τη λέξη-κλειδί κατηγορίας | Η δημιουργία αντικειμένων μπορεί να γίνει με πολλούς τρόπους όπως η χρήση νέας λέξης-κλειδιού, η μέθοδος newInstance (), ο κλώνος () και η εργοστασιακή μέθοδος. |
Ε # 5) Γιατί είναι ανάγκη για αντικειμενοστραφή προγραμματισμό;
Απάντηση: Το OOP παρέχει προσδιοριστές πρόσβασης και δυνατότητες απόκρυψης δεδομένων για περισσότερη ασφάλεια και πρόσβαση δεδομένων πρόσβασης, η υπερφόρτωση μπορεί να επιτευχθεί με λειτουργία και υπερφόρτωση χειριστή, η επαναχρησιμοποίηση κώδικα είναι δυνατή καθώς τα ήδη δημιουργημένα αντικείμενα σε ένα πρόγραμμα μπορούν να χρησιμοποιηθούν σε άλλα προγράμματα.
Ο πλεονασμός δεδομένων, η συντήρηση κώδικα, η ασφάλεια δεδομένων και το πλεονέκτημα των εννοιών όπως η ενθυλάκωση, η αφαίρεση, ο πολυμορφισμός και η κληρονομικότητα σε αντικειμενοστρεφή προγραμματισμό παρέχουν ένα πλεονέκτημα έναντι των γλωσσών διαδικαστικού προγραμματισμού που χρησιμοποιήθηκαν προηγουμένως.
Q # 6) Εξηγήστε την αφαίρεση με ένα παράδειγμα σε πραγματικό χρόνο.
Απάντηση: Η αφαίρεση σε αντικειμενοστρεφή προγραμματισμό σημαίνει την απόκρυψη πολύπλοκων εσωτερικών, αλλά την έκθεση μόνο βασικών χαρακτηριστικών και συμπεριφοράς σε σχέση με το περιβάλλον. Στην πραγματική ζωή, ένα παράδειγμα αφαίρεσης είναι ένα ηλεκτρονικό καλάθι αγορών, ας πούμε σε οποιονδήποτε ιστότοπο ηλεκτρονικού εμπορίου. Μόλις επιλέξετε ένα προϊόν και μια παραγγελία βιβλίου, απλά ενδιαφέρεστε να παραλάβετε το προϊόν σας εγκαίρως.
Το πώς συμβαίνουν τα πράγματα δεν είναι αυτό που σας ενδιαφέρει, καθώς είναι περίπλοκο και κρυμμένο. Αυτό είναι γνωστό ως αφαίρεση. Παρομοίως, πάρτε το παράδειγμα του ATM, την πολυπλοκότητα των εσωτερικών του τρόπου με τον οποίο τα χρήματα χρεώνονται από τον λογαριασμό σας διατηρούνται κρυμμένα και λαμβάνετε μετρητά μέσω ενός δικτύου. Ομοίως για τα αυτοκίνητα, ο τρόπος με τον οποίο η βενζίνη κάνει τον κινητήρα να λειτουργεί το αυτοκίνητο είναι εξαιρετικά περίπλοκο.
Ε # 7) Δώστε μερικά παραδείγματα σε πραγματικό χρόνο και εξηγήστε την κληρονομικότητα.
Απάντηση: Κληρονομικότητα σημαίνει μια τάξη (υποκατηγορία) που αποκτά ιδιότητες άλλης κατηγορίας (σούπερ τάξη) με κληρονομικότητα. Στην πραγματική ζωή, πάρτε ένα παράδειγμα κληρονομιάς ενός κανονικού ποδηλάτου όπου είναι μια τάξη γονέων και ένα σπορ ποδήλατο μπορεί να είναι παιδική τάξη, όπου το σπορ ποδήλατο έχει κληρονομήσει ιδιότητες και συμπεριφορά περιστρεφόμενων τροχών με πεντάλ μέσω γραναζιών με ένα κανονικό ποδήλατο.
Ε # 8) Πώς λειτουργεί ο πολυμορφισμός στην Ιάβα, εξηγείτε με πραγματικά παραδείγματα;
Απάντηση: Ο πολυμορφισμός είναι η ικανότητα να έχει πολλαπλές μορφές ή ικανότητα της μεθόδου να κάνει διαφορετικά πράγματα. Στην πραγματική ζωή, το ίδιο άτομο που εκτελεί διαφορετικά καθήκοντα συμπεριφέρεται διαφορετικά. Στο γραφείο είναι υπάλληλος, στο σπίτι, είναι πατέρας, κατά τη διάρκεια ή μετά το σχολείο, είναι μαθητής, τα σαββατοκύριακα παίζει κρίκετ και είναι παίκτης στην παιδική χαρά.
τι είναι το makefile c ++
Στην Ιάβα, υπάρχουν δύο τύποι πολυμορφισμού
- Ώρα μεταγλώττισης πολυμορφισμός: Αυτό επιτυγχάνεται με μέθοδο υπερφόρτωσης ή υπερφόρτωση χειριστή.
- Πολυμορφισμός χρόνου εκτέλεσης: Αυτό επιτυγχάνεται με παράκαμψη μεθόδου.
Ε # 9) Πόσα είδη κληρονομιάς υπάρχουν;
Απάντηση: Παρακάτω αναφέρονται διάφοροι τύποι κληρονομιάς:
- Ενιαία κληρονομικότητα: Η τάξη ενός παιδιού κληρονομεί τα χαρακτηριστικά της τάξης ενός γονέα.
- Πολλαπλή κληρονομικότητα: Μία κλάση κληρονομεί χαρακτηριστικά περισσότερων από μία βασικών κατηγοριών και δεν υποστηρίζεται στην Java, αλλά η κλάση μπορεί να εφαρμόσει περισσότερες από μία διεπαφές.
- Πολυεπίπεδη κληρονομικότητα: Μια τάξη μπορεί να κληρονομήσει από μια παράγωγη τάξη καθιστώντας την βασική τάξη για μια νέα τάξη, για παράδειγμα, Ένα παιδί κληρονομεί συμπεριφορά από τον πατέρα του και ο πατέρας έχει κληρονομήσει χαρακτηριστικά από τον πατέρα του.
- Ιεραρχική κληρονομικότητα: Μια τάξη κληρονομείται από πολλές υποκατηγορίες.
- Υβριδική κληρονομικότητα: Αυτός είναι ένας συνδυασμός μεμονωμένων και πολλαπλών κληρονομιών.
Q # 10) Τι είναι η διεπαφή;
Απάντηση: Η διεπαφή είναι παρόμοια με την κλάση όπου μπορεί να έχει μεθόδους και μεταβλητές, αλλά οι μέθοδοι της δεν έχουν σώμα, απλώς μια υπογραφή γνωστή ως αφηρημένη μέθοδος. Οι μεταβλητές που δηλώνονται στη διεπαφή μπορούν να έχουν δημόσια, στατική και τελική από προεπιλογή. Η διεπαφή χρησιμοποιείται στην Java για αφαίρεση και πολλαπλές κληρονομιές, όπου η τάξη μπορεί να εφαρμόσει πολλαπλές διεπαφές.
Ε # 11) Μπορείτε να εξηγήσετε τα πλεονεκτήματα της αφαίρεσης και της κληρονομικότητας;
Απάντηση: Η αφαίρεση αποκαλύπτει μόνο βασικές λεπτομέρειες στον χρήστη και αγνοεί ή κρύβει άσχετες ή περίπλοκες λεπτομέρειες. Με άλλα λόγια, η αφαίρεση δεδομένων εκθέτει τη διεπαφή και κρύβει τις λεπτομέρειες εφαρμογής. Η Java εκτελεί αφαίρεση με τη βοήθεια διεπαφών και αφηρημένων κλάσεων. Το πλεονέκτημα της αφαίρεσης είναι ότι καθιστά απλό στην προβολή πραγμάτων μειώνοντας ή αποκρύβοντας την πολυπλοκότητα της εφαρμογής.
Αποφεύγεται η επικάλυψη κώδικα και αυξάνει την επαναχρησιμοποίηση κώδικα. Μόνο βασικές λεπτομέρειες αποκαλύπτονται στον χρήστη και βελτιώνει την ασφάλεια της εφαρμογής.
Η κληρονομικότητα είναι όπου η παιδική τάξη κληρονομεί τη λειτουργικότητα (συμπεριφορά) της γονικής τάξης. Δεν χρειάζεται να γράφουμε κώδικα όταν γράφεται στην γονική τάξη για να λειτουργήσει ξανά στην παιδική τάξη και έτσι να διευκολύνεται η επαναχρησιμοποίηση του κώδικα. Ο κωδικός γίνεται επίσης αναγνώσιμος. Η κληρονομικότητα χρησιμοποιείται όταν υπάρχει σχέση «υπάρχει». Παράδειγμα: Hyundai είναι ένα αυτοκίνητο Ή MS Word είναι ένα λογισμικό.
Q # 12) Ποια είναι η διαφορά μεταξύ επεκτάσεων και εργαλείων;
Απάντηση: Και οι δύο επεκτείνουν και εφαρμόζουν τη λέξη-κλειδί χρησιμοποιούνται για κληρονομιά αλλά με διαφορετικούς τρόπους.
Οι διαφορές μεταξύ των λέξεων-κλειδιών Επεκτάσεων και Εφαρμογών στην Java εξηγούνται παρακάτω:
Επεκτείνεται | Εφαρμογές |
---|---|
Μια τάξη μπορεί να επεκτείνει μια άλλη τάξη (παιδί που επεκτείνει τον γονέα κληρονομώντας τα χαρακτηριστικά του). Η διεπαφή κληρονομεί επίσης (χρησιμοποιώντας επεκτάσεις λέξεων-κλειδιών) μια άλλη διεπαφή. | Μια τάξη μπορεί να εφαρμόσει μια διεπαφή |
Η δευτερεύουσα τάξη που επεκτείνει τη σούπερ κλάση ενδέχεται να μην παρακάμψει όλες τις μεθόδους σούπερ κλάσης | Η διεπαφή εφαρμογής κλάσης πρέπει να εφαρμόζει όλες τις μεθόδους της διεπαφής. |
Η τάξη μπορεί να επεκτείνει μόνο μία σούπερ τάξη. | Η κλάση μπορεί να εφαρμόσει οποιονδήποτε αριθμό διεπαφών. |
Η διεπαφή μπορεί να επεκτείνει περισσότερες από μία διεπαφές. | Η διεπαφή δεν μπορεί να εφαρμόσει οποιαδήποτε άλλη διεπαφή. |
Σύνταξη: class Το παιδί επεκτείνει την κατηγορία Parent | Σύνταξη: Η κατηγορία Hybrid εφαρμόζει το Rose |
Ε # 13) Ποιοι είναι οι διαφορετικοί τροποποιητές πρόσβασης στην Java;
Απάντηση: Οι τροποποιητές πρόσβασης στο Java ελέγχουν το εύρος πρόσβασης της κλάσης, του κατασκευαστή, της μεταβλητής, της μεθόδου ή του μέλους δεδομένων. Διάφοροι τύποι τροποποιητών πρόσβασης είναι οι εξής:
- Προεπιλεγμένος τροποποιητής πρόσβασης είναι χωρίς κανένα μέλος δεδομένων προσδιοριστή πρόσβασης, κλάσης και μεθόδων και είναι προσβάσιμα μέσα στο ίδιο πακέτο.
- Τροποποιητές ιδιωτικής πρόσβασης επισημαίνονται με τη λέξη-κλειδί ιδιωτική και είναι προσβάσιμες μόνο μέσα στην τάξη και δεν είναι καν προσβάσιμες ανά κλάση από το ίδιο πακέτο.
- Προστατευμένοι τροποποιητές πρόσβασης μπορεί να είναι προσβάσιμο εντός του ίδιου πακέτου ή υποκατηγοριών από διαφορετικά πακέτα.
- Τροποποιητές δημόσιας πρόσβασης είναι προσβάσιμα από παντού.
Ε # 14) Εξηγήστε τη διαφορά μεταξύ της αφηρημένης τάξης και της μεθόδου;
Απάντηση: Ακολουθούν ορισμένες διαφορές μεταξύ της αφηρημένης κλάσης και της αφηρημένης μεθόδου στην Java:
Περίληψη τάξη | Περίληψη Μέθοδος |
---|---|
Δεν είναι δυνατή η δημιουργία αντικειμένου από την αφηρημένη κλάση. | Η αφηρημένη μέθοδος έχει υπογραφή αλλά δεν έχει σώμα. |
Η υποκατηγορία δημιούργησε ή κληρονόμησε την αφηρημένη τάξη για πρόσβαση σε μέλη της αφηρημένης τάξης | Είναι υποχρεωτικό να παρακάμψετε τις αφηρημένες μεθόδους της σούπερ τάξης στην υποκατηγορία τους. |
Η αφηρημένη τάξη μπορεί να περιέχει αφηρημένες μεθόδους ή μη αφηρημένες μεθόδους. | Κλάση που περιέχει αφηρημένη μέθοδο θα πρέπει να γίνει αφηρημένη τάξη. |
Ε # 15) Ποιες είναι οι διαφορές μεταξύ μεθόδου και κατασκευαστή;
Απάντηση: Ακολουθούν οι διαφορές μεταξύ κατασκευαστών και μεθόδων στην Java:
Κατασκευαστές | Μέθοδοι |
---|---|
Το όνομα των κατασκευαστών πρέπει να ταιριάζει με αυτό της κλάσης. | Οι μέθοδοι δεν πρέπει να έχουν το ίδιο όνομα με το όνομα κλάσης. |
Χρησιμοποιούνται για τη δημιουργία, την αρχικοποίηση και την εκχώρηση μνήμης στο αντικείμενο. | Οι μέθοδοι χρησιμοποιούνται για την εκτέλεση ορισμένων δηλώσεων που γράφονται μέσα τους. |
Οι κατασκευαστές επικαλούνται σιωπηρά το σύστημα κάθε φορά που δημιουργούνται αντικείμενα. | Οι μέθοδοι επικαλούνται όταν καλείται. |
Επικαλούνται χρησιμοποιώντας νέα λέξη-κλειδί κατά τη δημιουργία μιας παρουσίας της κλάσης (αντικείμενο). | Οι μέθοδοι επικαλούνται κατά την εκτέλεση του προγράμματος. |
Ο κατασκευαστής δεν έχει τύπο επιστροφής. | Η μέθοδος έχει έναν τύπο επιστροφής. |
Ο κατασκευαστής δεν μπορεί να κληρονομηθεί από την υποκατηγορία. | Οι μέθοδοι μπορούν να κληρονομηθούν από μια υποκατηγορία. |
Q # 16) Τι είναι ένας κατασκευαστής στην Java;
Απάντηση: Ο κατασκευαστής είναι μια μέθοδος χωρίς τύπο επιστροφής και έχει το όνομά του ίδιο με το όνομα κλάσης. Όταν δημιουργούμε ένα αντικείμενο, ένας προεπιλεγμένος κατασκευαστής εκχωρεί μνήμη για ένα αντικείμενο κατά τη σύνταξη του κώδικα Java. Οι κατασκευαστές χρησιμοποιούνται για την αρχικοποίηση αντικειμένων και τον καθορισμό αρχικών τιμών για χαρακτηριστικά αντικειμένων.
Q # 17) Πόσοι τύποι κατασκευαστών μπορούν να χρησιμοποιηθούν στην Java; Παρακαλώ εξηγήστε.
Απάντηση: Υπάρχουν βασικά τρεις τύποι κατασκευαστών στην Java.
Αυτά είναι:
- Προεπιλεγμένος κατασκευαστής: Αυτός ο κατασκευαστής δεν έχει καμία παράμετρο και καλεί κάθε φορά που δημιουργείτε μια παρουσία μιας κλάσης (αντικείμενο). Εάν μια τάξη είναι Υπάλληλος, τότε η σύνταξη του προεπιλεγμένου κατασκευαστή θα είναι Υπάλληλος ().
- Κατασκευαστής No-arg: Όπως υποδηλώνει το όνομα, ένας κατασκευαστής χωρίς κανένα επιχείρημα ονομάζεται κατασκευαστής no-arg.
- Παράμετρος κατασκευαστής: Ο κατασκευαστής με έναν αριθμό παραμέτρων ονομάζεται παράμετρος κατασκευαστής. Πρέπει να παρέχετε επιχειρήματα, δηλαδή αρχικές τιμές σε σχέση με τον τύπο δεδομένων των παραμέτρων σε αυτόν τον κατασκευαστή.
Ε # 18) Γιατί χρησιμοποιείται νέα λέξη-κλειδί στην Java;
Απάντηση: Όταν δημιουργούμε μια παρουσία κλάσης, δηλαδή αντικείμενα, χρησιμοποιούμε τη λέξη-κλειδί Java νέος . Εκχωρεί μνήμη στην περιοχή σωρού όπου το JVM διατηρεί χώρο για ένα αντικείμενο. Εσωτερικά, επικαλείται τον προεπιλεγμένο κατασκευαστή επίσης.
Σύνταξη:
Class_name obj = new Class_name();
Q # 19) Πότε χρησιμοποιείτε τη σούπερ λέξη-κλειδί;
Απάντηση: Σούπερ είναι μια λέξη-κλειδί Java που χρησιμοποιείται για την αναγνώριση ή την αναφορά της γονικής (βασικής) κλάσης.
- Μπορούμε να χρησιμοποιήσουμε το σούπερ για να αποκτήσουμε πρόσβαση σε μεθόδους κατασκευαστή και κλήσης σούπερ κλάσης της σούπερ τάξης.
- Όταν τα ονόματα μεθόδων είναι τα ίδια στην super class και sub class, για να αναφερθεί η super class, η σούπερ χρησιμοποιείται η λέξη-κλειδί.
- Για να αποκτήσετε πρόσβαση στα ίδια δεδομένα μέλη της κλάσης γονέα όταν είναι παρόντα στην τάξη γονέων και παιδιών.
- Σούπερ μπορεί να χρησιμοποιηθεί για την πραγματοποίηση μιας ρητής κλήσης σε κατασκευαστές no-arg και παραμετροποιημένων της μητρικής κλάσης.
- Η πρόσβαση στη μέθοδο γονικής τάξης μπορεί να γίνει χρησιμοποιώντας σούπερ , όταν η τάξη για παιδιά έχει αντικαταστήσει τη μέθοδο.
Ε # 20) Πότε χρησιμοποιείτε αυτήν τη λέξη-κλειδί;
Απάντηση: Αυτό Η λέξη-κλειδί στην Java αναφέρεται στο τρέχον αντικείμενο του κατασκευαστή ή στη μέθοδο.
- Όταν τα χαρακτηριστικά κλάσης και οι παραμετροποιημένοι κατασκευαστές έχουν το ίδιο όνομα, Αυτό χρησιμοποιείται η λέξη-κλειδί.
- Λέξεις-κλειδιά Αυτό καλεί τον τρέχοντα κατασκευαστή τάξης, τη μέθοδο της τρέχουσας κλάσης, επιστρέφει το αντικείμενο της τρέχουσας τάξης, μεταδίδει ένα όρισμα στον κατασκευαστή και καλεί τη μέθοδο.
Q # 21) Ποια είναι η διαφορά μεταξύ του χρόνου εκτέλεσης και του πολυμορφισμού του χρόνου μεταγλώττισης;
Απάντηση: Τόσο ο πολυμορφισμός χρόνου εκτέλεσης όσο και ο χρόνος μεταγλώττισης είναι δύο διαφορετικοί τύποι πολυμορφισμού. Οι διαφορές τους εξηγούνται παρακάτω:
Μεταγλώττιση πολυμορφισμού χρόνου | Πολυμορφισμός χρόνου εκτέλεσης |
---|---|
Η κλήση επιλύεται από έναν μεταγλωττιστή στον πολυμορφισμό μεταγλώττισης. | Η κλήση δεν επιλύεται από τον μεταγλωττιστή στον πολυμορφισμό χρόνου εκτέλεσης. |
Είναι επίσης γνωστό ως στατική σύνδεση και υπερφόρτωση μεθόδου. | Είναι επίσης γνωστή ως δυναμική, καθυστερημένη και παράκαμψη μεθόδου. |
Μέθοδοι με το ίδιο όνομα με διαφορετικές παραμέτρους ή μεθόδους με την ίδια υπογραφή και διαφορετικούς τύπους επιστροφής είναι πολυμορφισμός μεταγλώττισης. | Η μέθοδος του ίδιου ονόματος με τις ίδιες παραμέτρους ή την υπογραφή που σχετίζονται με διαφορετικές κατηγορίες ονομάζεται παράκαμψη μεθόδου. |
Επιτυγχάνεται με υπερφόρτωση λειτουργίας και χειριστή. | Μπορεί να επιτευχθεί με δείκτες και εικονικές λειτουργίες. |
Καθώς όλα τα πράγματα εκτελούνται κατά τη στιγμή της μεταγλώττισης. Ο πολυμορφισμός του χρόνου μεταγλώττισης είναι λιγότερο ευέλικτος. | Καθώς τα πράγματα εκτελούνται στο χρόνο εκτέλεσης, ο πολυμορφισμός χρόνου εκτέλεσης είναι πιο ευέλικτος. |
Q # 22) Ποιες αντικειμενοστρεφείς λειτουργίες χρησιμοποιούνται στην Java;
Απάντηση: Μια ιδέα της χρήσης ενός αντικειμένου στη γλώσσα προγραμματισμού Java ωφελείται από τη χρήση αντικειμενοστρεφών εννοιών όπως η ενθυλάκωση για σύνδεση μεταξύ της κατάστασης και της συμπεριφοράς ενός αντικειμένου, εξασφαλίζει την πρόσβαση δεδομένων με προσδιοριστές πρόσβασης, χαρακτηριστικά όπως αφαίρεση στην απόκρυψη πληροφοριών, κληρονομιά για επέκταση κατάστασης , και συμπεριφορά βασικών κατηγοριών σε τάξεις παιδιών, πολυμορφισμός μεταγλώττισης χρόνου και χρόνου εκτέλεσης για υπερφόρτωση μεθόδου και παράκαμψη μεθόδου, αντίστοιχα.
τι εργαλεία χρησιμοποιούν οι επιχειρηματικοί αναλυτές
Q # 23) Τι είναι η μέθοδος υπερφόρτωσης;
Απάντηση: Όταν δύο ή περισσότερες μέθοδοι με το ίδιο όνομα έχουν διαφορετικό αριθμό παραμέτρων ή διαφορετικούς τύπους παραμέτρων, αυτές οι μέθοδοι μπορεί να έχουν ή να μην έχουν διαφορετικούς τύπους επιστροφής, τότε είναι μέθοδοι υπερφόρτωσης και η δυνατότητα είναι μέθοδος υπερφόρτωσης. Η μέθοδος υπερφόρτωσης ονομάζεται επίσης πολυμορφισμός μεταγλώττισης χρόνου.
Q # 24) Τι είναι η μέθοδος παράκαμψης;
Απάντηση: Όταν μια μέθοδος δευτερεύουσας κλάσης (παράγεται, θυγατρική τάξη) έχει το ίδιο όνομα, παραμέτρους (υπογραφή) και τον ίδιο τύπο επιστροφής με τη μέθοδο στην σούπερ κλάση (βάση, γονική κλάση), τότε η μέθοδος στην υποκατηγορία λέγεται ότι παρακάμπτεται η μέθοδος στο superclass. Αυτό το χαρακτηριστικό είναι επίσης γνωστό ως πολυμορφισμός χρόνου εκτέλεσης.
Q # 25) Εξηγήστε την υπερφόρτωση κατασκευαστή.
Απάντηση: Περισσότεροι από ένας κατασκευαστές που έχουν διαφορετικές παραμέτρους, ώστε να μπορούν να εκτελούνται διαφορετικές εργασίες με κάθε κατασκευαστή είναι γνωστοί ως υπερφόρτωση κατασκευαστή. Με υπερφόρτωση κατασκευαστή, τα αντικείμενα μπορούν να δημιουργηθούν με διαφορετικούς τρόπους. Διάφορες κλάσεις συλλογής στο Java API είναι παραδείγματα υπερφόρτωσης κατασκευαστή.
Ε # 26) Τι είδους επιχειρήματα μπορούν να χρησιμοποιηθούν στην Java;
Απάντηση: Για μεθόδους και λειτουργίες Java, τα δεδομένα παραμέτρων μπορούν να αποστέλλονται και να λαμβάνονται με διαφορετικούς τρόπους. Εάν η μέθοδος Β () καλείται από τη μέθοδο Α (), η μέθοδος Α () είναι συνάρτηση καλούντος και η μέθοδος Β () καλείται συνάρτηση, τα ορίσματα που αποστέλλονται από τη μέθοδο Α () είναι πραγματικά επιχειρήματα και οι παράμετροι της μεθόδου Β () ονομάζονται επίσημα ορίσματα.
- Κλήση ανά αξία: Οι αλλαγές που έγιναν στην τυπική παράμετρο (παράμετροι της μεθόδου Β ()) δεν αποστέλλονται πίσω στον καλούντα (μέθοδος Α ()), Αυτή η μέθοδος καλείται κλήση ανά αξία . Η Java υποστηρίζει την κλήση από αξία.
- Κλήση με αναφορά: Οι αλλαγές που έγιναν στην τυπική παράμετρο (παράμετροι της μεθόδου Β ()) αποστέλλονται πίσω στον καλούντα (παράμετροι της μεθόδου Β ()).
- Τυχόν αλλαγές στις τυπικές παραμέτρους (παράμετροι της μεθόδου Β ()) αντικατοπτρίζονται στις πραγματικές παραμέτρους (επιχειρήματα που αποστέλλονται από τη μέθοδο Α ()). Αυτό ονομάζεται κλήση με αναφορά.
Q # 27) Διακρίνετε μεταξύ στατικής και δυναμικής σύνδεσης;
Απάντηση: Οι διαφορές μεταξύ Στατικής και Δυναμικής σύνδεσης εξηγούνται στον παρακάτω πίνακα.
Στατική δέσμευση | Δυναμική δέσμευση |
---|---|
Η στατική δέσμευση στην Java χρησιμοποιεί τον τύπο πεδίων και την κλάση ως ανάλυση. | Η δυναμική δέσμευση στην Java χρησιμοποιεί αντικείμενο για την επίλυση της δέσμευσης. |
Η μέθοδος υπερφόρτωσης είναι ένα παράδειγμα στατικής σύνδεσης. | Η παράκαμψη μεθόδου είναι ένα παράδειγμα δυναμικής σύνδεσης. |
Η στατική δέσμευση επιλύεται κατά τη στιγμή της μεταγλώττισης. | Η δυναμική σύνδεση επιλύεται κατά το χρόνο εκτέλεσης. |
Οι μέθοδοι και οι μεταβλητές που χρησιμοποιούν στατική δέσμευση είναι ιδιωτικοί, τελικοί και στατικοί τύποι. | Οι εικονικές μέθοδοι χρησιμοποιούν δυναμική δέσμευση. |
Ε # 28) Μπορείτε να εξηγήσετε τη βασική τάξη, την υποκατηγορία και το superclass;
Απάντηση: Η βασική τάξη, η υποκατηγορία και η σούπερ τάξη στην Java εξηγούνται ως εξής:
- Η βασική τάξη ή η γονική τάξη είναι μια σούπερ τάξη και είναι μια τάξη από την οποία προέρχεται η υποκατηγορία ή η θυγατρική τάξη.
- Η υποκατηγορία είναι μια κλάση που κληρονομεί χαρακτηριστικά (ιδιότητες) και μεθόδους (συμπεριφορά) από την βασική κλάση.
Q # 29) Υποστηρίζεται υπερφόρτωση χειριστή στην Java;
Απάντηση: Η υπερφόρτωση χειριστή δεν υποστηρίζεται από την Java, όπως
- Κάνει τον διερμηνέα να καταβάλει μεγαλύτερη προσπάθεια για να κατανοήσει την πραγματική λειτουργικότητα του χειριστή που κάνει τον κώδικα πολύπλοκο και δύσκολο να καταρτιστεί.
- Η υπερφόρτωση του χειριστή καθιστά τα προγράμματα πιο επιρρεπή σε σφάλματα.
- Ωστόσο, η δυνατότητα υπερφόρτωσης του χειριστή μπορεί να επιτευχθεί με τη μέθοδο υπερφόρτωσης με απλό, καθαρό και χωρίς σφάλματα τρόπο.
Q # 30) Πότε χρησιμοποιείται η μέθοδος οριστικοποίησης;
Απάντηση: Οριστικοποιώ Η μέθοδος καλείται λίγο πριν το αντικείμενο πρόκειται να συλλεχθεί σκουπίδια. Αυτή η μέθοδος παρακάμπτει για να ελαχιστοποιήσει τις διαρροές μνήμης, να αναλάβει δραστηριότητες καθαρισμού αφαιρώντας τους πόρους του συστήματος.
Ε # 31) Εξηγήστε σχετικά με τα κουπόνια.
Απάντηση: Τα διακριτικά στο πρόγραμμα Java είναι τα μικρότερα στοιχεία που αναγνωρίζει ο μεταγλωττιστής. Τα αναγνωριστικά, οι λέξεις-κλειδιά, τα γράμματα, οι τελεστές και οι διαχωριστές είναι παραδείγματα συμβολικών.
συμπέρασμα
Οι αντικειμενοστρεφείς έννοιες προγραμματισμού αποτελούν αναπόσπαστο μέρος για προγραμματιστές, αυτοματισμούς καθώς και χειροκίνητους δοκιμαστές που σχεδιάζουν αυτοματοποιημένο πλαίσιο δοκιμών για τη δοκιμή μιας εφαρμογής ή την ανάπτυξη εφαρμογών με γλώσσα προγραμματισμού Java.
Η εις βάθος κατανόηση είναι υποχρεωτική όλων των αντικειμενοστρεφών χαρακτηριστικών όπως τάξη, αντικείμενο, αφαίρεση, ενθυλάκωση, κληρονομιά, πολυμορφισμός και εφαρμογή αυτών των εννοιών σε μια γλώσσα προγραμματισμού όπως η Java για την επίτευξη των απαιτήσεων των πελατών.
Προσπαθήσαμε να καλύψουμε τις πιο σημαντικές αντικειμενοστρεφείς ερωτήσεις συνέντευξης προγραμματισμού και δώσαμε κατάλληλες απαντήσεις με παραδείγματα.
Σας ευχόμαστε ό, τι καλύτερο για την επερχόμενη συνέντευξή σας!
Συνιστώμενη ανάγνωση
- OOP Java: Εισαγωγή στον αντικειμενοστρεφή προγραμματισμό στην Java
- Κορυφαία 20 προγράμματα συνέντευξης Java για προγραμματισμό και συνέντευξη κωδικοποίησης
- Κορυφαίες 50+ ερωτήσεις και απαντήσεις σε συνέντευξη Java
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Ενθυλάκωση σε Java: Πλήρης οδηγός με παραδείγματα
- Τι είναι η αφαίρεση στην Java - Μάθετε με παραδείγματα
- OOPS Concepts In C #: Object Oriented Programming Concept Tutorial
- Έννοιες Python OOPs (Μαθήματα Python, Αντικείμενα και Κληρονομικότητα)