oop java introduction object oriented programming java
Αυτό το σεμινάριο βίντεο θα εισαγάγει έννοιες OOP (Object Oriented Programming) στην Java όπως Object, Class, Inheritance, Polymorphism, Abstraction, Encapsulation, κλπ:
Στον προγραμματισμό λογισμικού, έχουμε διάφορους τύπους γλωσσών προγραμματισμού. Οι κύριες γλώσσες μεταξύ τους είναι είτε διαδικαστικής είτε αντικειμενοστραφής.
Στις διαδικαστικές γλώσσες προγραμματισμού, τα μεγαλύτερα προβλήματα χωρίζονται σε μικρά επιλύσιμα προβλήματα. Αυτά τα μικρά προβλήματα μετατρέπονται σε διαδικασίες ή λειτουργίες. Με αυτόν τον τρόπο η διαδικαστική γλώσσα προγραμματισμού δίνει έμφαση στις λειτουργίες και όχι στα δεδομένα. Έτσι, οι διαδικαστικές γλώσσες αγνόησαν πλήρως τα δεδομένα και έτσι δεν διασφαλίζουν καθόλου την ασφάλεια των δεδομένων.
Αυτό το πρόβλημα αντιμετωπίστηκε με αντικειμενοστρεφή γλώσσα προγραμματισμού. Ο αντικειμενοστρεφής προγραμματισμός είναι ένας τρόπος σχεδιασμού και προγραμματισμού λογισμικού με χειρισμό αντικειμένων και τα αντικείμενα είναι το κύριο μέρος του προγραμματισμού.
Ανακαλύψτε ολόκληρη τη σειρά εκμάθησης Java για αρχάριους εδώ .
Τι θα μάθετε:
- Εκπαιδευτικά βίντεο σχετικά με τις έννοιες OOPS
- Αντικειμενοστρεφής προγραμματισμός (OOP) στην Java
- συμπέρασμα
Εκπαιδευτικά βίντεο σχετικά με τις έννοιες OOPS
OOPS Concept στην Java - Μέρος 1:
Σε βάθος ματιά στο OOPS Concept στην Java - Μέρος 2:
Οι αντικειμενοστρεφείς γλώσσες προγραμματισμού δίνουν έμφαση στα δεδομένα περισσότερο από τις συναρτήσεις. Ο αντικειμενοστρεφής προγραμματισμός (OOP) περιστρέφεται γύρω από αντικείμενα, δηλαδή οντότητα σε πραγματικό χρόνο.
Αυτό το αντικείμενο συγκεντρώνει δεδομένα και τις μεθόδους που λειτουργούν σε αυτά τα δεδομένα σε μία μονάδα. Με αυτόν τον τρόπο, τα δεδομένα προστατεύονται από τον εξωτερικό κόσμο έχοντας τις μεθόδους μέσα στο αντικείμενο. Στο OOP, τα αντικείμενα επικοινωνούν μεταξύ τους μέσω μηνυμάτων.
Οποιαδήποτε γλώσσα OOP υποστηρίζει τις ακόλουθες δυνατότητες:
- Μαθήματα
- Ενθυλάκωση
- Αφαίρεση
- Κληρονομία
- Πολυμορφισμός
Όλες αυτές οι δυνατότητες διασφαλίζουν ότι τα δεδομένα είναι ασφαλή και ταυτόχρονα μπορούμε επίσης να γράψουμε ισχυρές εφαρμογές. Το Smalltalk, C ++, Java κ.λπ. είναι μερικές από τις αντικειμενοστρεφείς γλώσσες προγραμματισμού.
Σε αυτό το σεμινάριο, θα συζητήσουμε τα βασικά του OOP σχετικά με τη γλώσσα Java.
Αντικειμενοστρεφής προγραμματισμός (OOP) στην Java
Η Java είναι η πιο περιζήτητη ικανότητα προγραμματισμού προς το παρόν. Στην Java, όλα βασίζονται στο αντικείμενο. Η Java έχει μια κλάση ρίζας που ονομάζεται Object από την οποία προέρχεται ολόκληρη η λειτουργικότητα της Java. Έτσι, σε αυτό το σεμινάριο, θα συζητήσουμε τα κύρια χαρακτηριστικά του OOP σχετικά με την Java.
Συνιστώμενη ανάγνωση => Ερωτήσεις και απαντήσεις συνέντευξης OOP
Εδώ θα συζητήσουμε πώς η Java υποστηρίζει τις ακόλουθες δυνατότητες OOP.
- Αντικείμενο και τάξη
- Τάξη
- Κληρονομία
- Πολυμορφισμός
- Αφαίρεση
- Ενθυλάκωση
Ας συζητήσουμε λεπτομερώς καθεμία από αυτές τις έννοιες Java OOP.
Αντικείμενο & τάξη
Μια τάξη μπορεί να οριστεί ως πρωτότυπο σχεδιασμού ή ως σχέδιο. Τα αντικείμενα δημιουργούνται από αυτά τα σχεδιαγράμματα. Ορίζει ουσιαστικά έναν κοινό τύπο που αποτελείται από ιδιότητες και μεθόδους που λειτουργούν σε αυτές τις ιδιότητες για αυτόν τον κοινό τύπο. Στη συνέχεια, ορίζουμε τις εμφανίσεις αυτής της κλάσης που ονομάζονται αντικείμενα.
Μια τάξη έχει πολλά στοιχεία όπως φαίνεται στο παρακάτω σχήμα.
Ένα αντικείμενο αντιπροσωπεύει μια πραγματική οντότητα. Στην Java, ένα αντικείμενο είναι μια παρουσία μιας κλάσης. Έτσι, μια κλάση που είναι ένα σχεδιάγραμμα μπορεί να χρησιμοποιηθεί για τη δημιουργία πολλών αντικειμένων. Αυτά τα αντικείμενα επικοινωνούν συχνά μεταξύ τους με τη μετάδοση μηνυμάτων μεταξύ τους μέσω μεθόδων.
Εκπαιδευτικό βίντεο: Μαθήματα και αντικείμενα
Ένα αντικείμενο έχει συνήθως:
- Ένα κράτος: Οι ιδιότητες ή τα χαρακτηριστικά ενός αντικειμένου σε μια συγκεκριμένη στιγμή.
- Η ΣΥΜΠΕΡΙΦΟΡΑ: Οι μέθοδοι αντιπροσωπεύουν τη συμπεριφορά ενός αντικειμένου. Οι μέθοδοι καθορίζουν επίσης τον τρόπο επικοινωνίας των αντικειμένων.
- Ταυτότητα: Προσδιορίζει το αντικείμενο δίνοντάς του ένα μοναδικό όνομα.
Για παράδειγμα, αν έχουμε μια κατηγορία PetAnimals.
Τότε μπορούμε να ορίσουμε ένα αντικείμενο αυτής της τάξης ως εξής:
PetAnimals pig = νέα PetAnimals.
Εδώ η ταυτότητα του αντικειμένου είναι ένας χοίρος.
Δίνεται παρακάτω ένα πρόγραμμα που δείχνει τάξη και αντικείμενο.
//student class class Student{ int roll_No; String student_name; } class Main{ public static void main(String args()){ //Create objects of class Student Student student1=new Student(); Student student2=new Student(); //Initialize Student class objects student1.roll_No=101; student1.student_name='Lisa'; student2.roll_No=102; student2.student_name='Dan'; //Print object data System.out.println('Student 1 Details: ' + student1.roll_No+' '+student1.student_name); System.out.println('Student 2 Details: ' + student2.roll_No+' '+student2.student_name); } }
Παραγωγή
Στην παραπάνω τάξη, έχουμε ορίσει έναν μαθητή τάξης με δύο ιδιότητες roll_No και student_name. Στη συνέχεια, στην κύρια μέθοδο, δηλώνουμε δύο αντικείμενα κατηγορίας, δηλ. Student1 και student2. Σημειώστε ότι αυτά τα αντικείμενα δημιουργούνται χρησιμοποιώντας έναν νέο τελεστή. Μόλις δημιουργηθούν τα αντικείμενα, εκχωρούμε δεδομένα και στις δύο ιδιότητες του αντικειμένου.
Τέλος, εκτυπώνουμε τα περιεχόμενα του αντικειμένου χρησιμοποιώντας τον τελεστή «.» (Dot).
Θα μάθουμε περισσότερα σχετικά με τα μαθήματα και τα αντικείμενα στα συγκεκριμένα θέματα των μαθημάτων OOP.
Κληρονομία
Η κληρονομικότητα είναι ένα από τα πιο σημαντικά χαρακτηριστικά του OOP. Μέσω της κληρονομιάς, η Java προωθεί την επαναχρησιμοποίηση του κώδικα.
Τι είναι λοιπόν μια κληρονομιά στην Java;
Η κληρονομικότητα είναι ένας μηχανισμός στην Java όπου ένας κλάδος μπορεί να κληρονομήσει τις ιδιότητες μιας άλλης τάξης. Οι ιδιότητες που μπορούν να κληρονομηθούν περιλαμβάνουν μέλη δεδομένων και μεθόδους της κλάσης.
Η κλάση που κληρονομεί τις ιδιότητες μιας άλλης κλάσης ονομάζεται υποκατηγορία. Η κληρονομική τάξη είναι γνωστή ως «σούπερ» τάξη στην Java.
Κληρονομώντας την τάξη, η υποκατηγορία όχι μόνο κληρονομεί τις ιδιότητες αλλά και επαναχρησιμοποιεί τον κώδικα καθώς ο προγραμματιστής δεν χρειάζεται να γράψει ξανά τον κώδικα όταν μπορεί να τον κληρονομήσει απευθείας χρησιμοποιώντας κληρονομιά.
Στην Java, η κληρονομιά επιτυγχάνεται χρησιμοποιώντας τη λέξη-κλειδί 'επεκτείνεται'. Αυτό επεκτείνει τη λέξη-κλειδί χρησιμοποιείται στον ορισμό της κλάσης και ακολουθείται από το όνομα κλάσης που πρόκειται να κληρονομηθεί.
Για παράδειγμα,εάν υπάρχουν δύο τάξεις, τα Α και Β και το Α πρόκειται να κληρονομηθεί από το Β, τότε αυτή η κληρονομιά γράφεται στην Java ως:
class B extends A { …… }
Όπως έχει ήδη αναφερθεί, εδώ το Α είναι η κατηγορία superclass ή base class ή class. Το Β είναι μια υποκατηγορία, παράγωγη τάξη ή παιδική τάξη.
Η κληρονομικότητα χωρίζεται περαιτέρω στους ακόλουθους τύπους.
Η Java υποστηρίζει μονή, πολυεπίπεδη και ιεραρχική κληρονομιά.
Σημειώστε ότι η Java δεν υποστηρίζει πολλαπλές κληρονομιές. Η Java επίσης δεν υποστηρίζει υβριδική κληρονομιά που είναι συνδυασμός πολλαπλών και ιεραρχικών κληρονομιών.
Δίνεται παρακάτω ένα παράδειγμα προγράμματος Ενιαίας Κληρονομικότητας στην Java.
//base class class Employee{ float salary=50000; } //derived class class Developer extends Employee{ int bonus=20000; } class Main{ public static void main(String args()){ //declare Developer class object and access properties of base and derived class Developer p=new Developer(); System.out.println('Inheritance in Java'); System.out.println('Developer salary: '+p.salary); System.out.println('Bonus declared for Developer: '+p.bonus); System.out.println('Developer Total Earnings: ' + (p.salary + p.bonus)); } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε έναν υπάλληλο βασικής τάξης. Έχουμε έναν άλλο προγραμματιστή κλάσης που κληρονομεί από την κατηγορία υπαλλήλων. Στην κύρια μέθοδο, μπορούμε να δούμε ότι με τη δήλωση ενός αντικειμένου της κλάσης προγραμματιστή μπορούμε να έχουμε πρόσβαση όχι μόνο στις ιδιότητες της κλάσης προγραμματιστή αλλά και στην κατηγορία υπαλλήλων καθώς κληρονομείται από την τάξη προγραμματιστή.
Πολυμορφισμός
Ο πολυμορφισμός είναι ένα ακόμη σημαντικό χαρακτηριστικό του OOP. Ο πολυμορφισμός είναι η ικανότητα της γλώσσας να επιτρέπει σε αντικείμενα ή οντότητες να αναλαμβάνουν πολλαπλές μορφές. Για παράδειγμα, μια μέθοδος που έχει διάφορες υλοποιήσεις είναι πολυμορφική στην Java.
Ο πολυμορφισμός είναι δύο τύπων στην Java:
- Υπερφόρτωση ή μεταγλώττιση πολυμορφισμού χρόνου: Στο πολυμορφισμό του χρόνου μεταγλώττισης, η κλήση προς την πολυμορφική ή υπερφορτωμένη μέθοδο επιλύεται κατά το χρόνο μεταγλώττισης.
- Υπέρβαση ή πολυμορφισμός χρόνου εκτέλεσης: Στον πολυμορφισμό του χρόνου εκτέλεσης, η κλήση σε μια παράκαμψη μεθόδου στο πρόγραμμα Java επιλύεται κατά το χρόνο εκτέλεσης.
Θα συζητήσουμε λεπτομερώς τον πολυμορφισμό στα επόμενα σεμινάρια μας.
Δίνεται παρακάτω ένα παράδειγμα πολυμορφισμού μεταγλώττισης χρόνου στην Java όπου έχουμε μέθοδο προσθήκης που είναι υπερφορτωμένη για να εκτελέσουμε προσθήκη με διαφορετικούς τύπους τελεστών.
class Numbers_Sum { //add method : takes two int parameters public int add(int val1, int val2) { return (val1 + val2); } // overloaded add : takes three int parameters public int add(int val1, int val2, int val3) { return (val1 + val2 + val3); } //overloaded add: takes two double parameters public double add(double val1, double val2) { return (val1 + val2); } } class Main{ public static void main(String args()) { //create an object of Numbers_Sum class and call overloaded functions Numbers_Sum numsum = new Numbers_Sum(); System.out.println('Polymorphism in Java'); System.out.println('add(int, int): ' + numsum.add(15, 18)); System.out.println('add(int, int, int): ' + numsum.add(5, 10, 20)); System.out.println('add(double,double): ' + numsum.add(5.5, 15.5)); } }
Παραγωγή
Σε αυτό το πρόγραμμα, έχουμε τρεις υπερφορτωμένες μεθόδους που ονομάζονται add. Η πρώτη μέθοδος παίρνει δύο παραμέτρους int, η επόμενη μέθοδος παίρνει τρεις παραμέτρους int και η τρίτη μέθοδος παίρνει δύο διπλές παραμέτρους. Ανάλογα με τον αριθμό των παραμέτρων, η μέθοδος κλήσης επιλύεται στο χρόνο μεταγλώττισης και πραγματοποιείται η κατάλληλη κλήση.
Αφαίρεση
Χρησιμοποιώντας την αφαίρεση δεδομένων, εκθέτουμε μόνο τα βασικά μέρη της εφαρμογής που είναι προσβάσιμα στον χρήστη. Για παράδειγμα, αν έχουμε αυτοκίνητο, δεν ανησυχούμε για τα εσωτερικά εξαρτήματα του αυτοκινήτου, αλλά θεωρούμε μόνο το αυτοκίνητο ως σύνολο.
Χρησιμοποιώντας έναν μηχανισμό αφαίρεσης δεδομένων, αναγνωρίζουμε μόνο τις απαραίτητες λεπτομέρειες και αγνοούμε τις άσχετες λεπτομέρειες. Η Java χρησιμοποιεί αφηρημένες κλάσεις και διεπαφές για να επιτύχει την αφαίρεση. Οι διεπαφές είναι 100% αφηρημένες, καθώς έχουν μόνο πρωτότυπα μεθόδων και όχι τον ορισμό τους.
Το παρακάτω παράδειγμα δείχνει μια αφηρημένη τάξη και τη χρήση της.
// Abstract class declaration abstract class PetAnimal { // Abstract method: should be defined in derived class public abstract void animalSound(); // non-abstract method public void print() { System.out.println('This method is example of abstraction'); } } // Derived class class Dog extends PetAnimal { //abstract method defined here public void animalSound() { System.out.println('The doggy barks'); } } class Main { public static void main(String() args) { Dog doggy = new Dog(); // Instantiate derived class and call methods doggy.animalSound(); doggy.print(); } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε μια αφηρημένη κατηγορία PetAnimals. Σε αυτό, έχουμε μια αφηρημένη μέθοδο «animalSound». Στη συνέχεια, δημιουργούμε μια κατηγορία Dog και κληρονομούμε την κατηγορία PetAnimals. Στην κατηγορία Dog, παρακάμπτουμε τη μέθοδο animalSound.
ερωτήσεις συνέντευξης για γωνιακά για έμπειρους
Ενθυλάκωση
Το Encapsulation κρύβει δεδομένα ή προστατεύει τα δεδομένα. Στον προγραμματισμό, επιτυγχάνουμε ενθυλάκωση τυλίγοντας δεδομένα και μεθόδους που λειτουργούν σε αυτά τα δεδομένα σε μία μόνο μονάδα.
Εκπαιδευτικό βίντεο: Ενθυλάκωση και πολυμορφισμός στην Ιάβα
Μια κλάση μπορεί να θεωρηθεί ως μονάδα ενθυλάκωσης, δηλαδή έχουμε μέλη δεδομένων και μεθόδους που λειτουργούν σε αυτά τα μέλη δεδομένων ως ομαδοποιημένα σε μία μόνο μονάδα.
Η σωστή ενθυλάκωση μπορεί να επιτευχθεί κάνοντας τα μέλη δεδομένων ιδιωτικά και έχοντας τις μεθόδους που λειτουργούν σε αυτά τα δεδομένα ως δημόσια, έτσι ώστε τα δεδομένα να προστατεύονται πλήρως από τις εξωτερικές οντότητες.
Το παρακάτω πρόγραμμα Java δείχνει την έννοια ενθυλάκωσης.
class Customer_Account { //private data of class private long customer_accountNo; private String customer_name,customer_email; private float customer_salary; //public getter/setter methods to access private data public long getAcc_no() { return customer_accountNo; } public void setAcc_no(long acc_no) { this.customer_accountNo = acc_no; } public String getName() { return customer_name; } public void setName(String name) { this.customer_name = name; } public String getEmail() { return customer_email; } public void setEmail(String email) { this.customer_email = email; } public float getSalary() { return customer_salary; } public void setSalary(float salary) { this.customer_salary = salary; } } public class Main { public static void main(String() args) { //create an object of customer_Account class Customer_Account acc=new Customer_Account(); //use setter methods to set values acc.setAcc_no(123458765432L); acc.setName('SoftwareTestingHelp'); acc.setEmail('sth@sth.com'); acc.setSalary(65000f); //use getter methods to read values System.out.println('Customer Account Number: ' + acc.getAcc_no()); System.out.println('Customer Account Details:'); System.out.println(' Customer Name: '+acc.getName()+'
'+ ' Customer Email: ' + acc.getEmail()+'
' + ' Customer Salary: ' +acc.getSalary()); } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε μια κατηγορία Customer_Account.
Σε αυτήν την τάξη, έχουμε μέλη δεδομένων που είναι όλα ιδιωτικά. Στη συνέχεια, για κάθε ιδιωτικό πεδίο, παρέχουμε μεθόδους λήψης και ρύθμισης για ανάγνωση και καθορισμό τιμών αντίστοιχα. Αυτά τα μέλη και οι ρυθμιστές είναι δημόσια. Με αυτόν τον τρόπο προστατεύουμε τα πεδία δεδομένων χωρίς να τους επιτρέπουμε άμεση πρόσβαση έξω από την τάξη.
Μπορούν να προσεγγιστούν μόνο μέσω κατακτητών και ρυθμιστών. Αυτό δείχνει την ενθυλάκωση που περιγράψαμε παραπάνω.
Συχνές Ερωτήσεις
Q # 1) Τι σημαίνει Προγραμματισμένος Προγραμματισμός;
Απάντηση: Ο αντικειμενοστραφής προγραμματισμός (OOP) είναι ένα παράδειγμα λογισμικού που περιστρέφεται γύρω από τα δεδομένα. Στο OOP, η έμφαση δίνεται στα δεδομένα και επομένως τα προβλήματα εκφράζονται σε αντικείμενα που είναι οντότητες που αποτελούνται από δεδομένα ή πεδία και μεθόδους που λειτουργούν σε αυτά τα πεδία δεδομένων.
Με αυτόν τον τρόπο, εφαρμόζονται διάφορα διακριτικά χαρακτηριστικά του OOP, όπως η κληρονομικότητα, ο πολυμορφισμός, η αφαίρεση και η ενθυλάκωση για την εξασφάλιση της ασφάλειας των δεδομένων, της επαναχρησιμοποίησης κ.λπ.
Q # 2) Ποιες είναι οι 4 βασικές αρχές του OOP;
Απάντηση:Ο αντικειμενοστρεφής προγραμματισμός (OOP) έχει τέσσερις βασικές αρχές:
- Κληρονομία
- Πολυμορφισμός
- Αφαίρεση
- Ενθυλάκωση
Ονομάζονται επίσης τέσσερις πυλώνες του OOP.
Q # 3) Γιατί η Java ονομάζεται Object-Oriented;
Απάντηση: Η Java έχει ένα αντικείμενο κλάσης ρίζας από το οποίο αντλούμε όλες τις άλλες δυνατότητες της Java. Έτσι, χωρίς τάξη και αντικείμενο, δεν μπορούμε να έχουμε ένα πρόγραμμα Java. Ως εκ τούτου, η Java ονομάζεται γλώσσα OOP.
Q # 4) Είναι η Java καθαρά αντικειμενοστραφής;
Απάντηση: Όχι, η Java δεν είναι μια καθαρή αντικειμενοστρεφής γλώσσα. Καθώς η Java παρέχει επίσης πρωτόγονους τύπους δεδομένων όπως int, char, float, double, long κ.λπ., δεν ταξινομείται ως καθαρή γλώσσα OOP.
Q # 5) Ποια είναι η διαφορά μεταξύ C ++ και Java;
Απάντηση: Τόσο το C ++ όσο και το Java είναι αντικειμενοστρεφείς γλώσσες και υποστηρίζουν λειτουργίες OOP. Αλλά το C ++ είναι μια μεταγλωττισμένη γλώσσα. Η Java από την άλλη πλευρά συντάσσεται καθώς και μια ερμηνευμένη γλώσσα.
Ο διερμηνέας Java εκτελεί τον κώδικα byte κατά το χρόνο εκτέλεσης και παράγει έξοδο που το καθιστά ανεξάρτητο από την πλατφόρμα. Ωστόσο, το C ++ εξαρτάται από την πλατφόρμα.
Περισσότερα για το OOPS Concept
Τάξη
Η τάξη είναι ένα σχεδιάγραμμα / πρωτότυπο ενός αντικειμένου πραγματικού κόσμου και μοντελοποιεί την κατάσταση και τη συμπεριφορά αυτού του αντικειμένου πραγματικού κόσμου.
Δήλωση τάξης
class MyClass { // field, constructor, and // method declarations }
Class room(){ //room should have dimension. Dimension is attribute. //in the room, we are going keep things. Keeping is the function we are going to do. Keepthings (); this is a method in java. }
Αντικείμενο
Τα αντικείμενα λογισμικού είναι σαν αντικείμενα πραγματικής ζωής με κατάσταση και συμπεριφορά. Η κατάσταση θα αποθηκευτεί ως πεδίο και θα αποκαλύψει τη συμπεριφορά της ως μεθόδους.
Εδώ το δωμάτιο μοιάζει με γενικό σχεδιασμό. Σε αυτό το δωμάτιο, θα πρέπει να σχεδιάσετε ένα σαλόνι, μια κουζίνα, ένα υπνοδωμάτιο.
Class CookingRoom(){ Dimension is attribute. //here we should have method to keep cooking things. Keepthings(){ This method is same like room class keep things method. but it should have some more features to hold cooking items. } cooking(); }
Class LivingRoom(){ Dimension is attribute. //here we should have method to keep Living Room things. Keepthings(){ This method is same like room class keep things method. but it should have some more features to hold living room items(like tv etc). } watching tv(); }
Εδώ η μέθοδος «Keepthings ()» πρέπει να κάνει τις βασικές λειτουργίες που απαιτούνται για το δωμάτιο και θα πρέπει να έχει πρόσθετες προδιαγραφές σύμφωνα με την τάξη «σαλόνι» και την τάξη «δωμάτιο μαγειρέματος». Έτσι, οι δύο τάξεις πρέπει να κληρονομήσουν τις μεθόδους στην τάξη «δωμάτιο».
Κληρονομία
Συμπεριφορά (μέθοδοι) και κατάσταση μιας τάξης που κληρονομήθηκε στην άλλη τάξη ονομάζεται κληρονομικότητα. Οι μέθοδοι και η κατάσταση κληρονομούνται από τη γονική τάξη στην παιδική τάξη.
Ετσι,
Class CookingRoom extends Room{ }
Class LivingRoom extends Room{ }
Πολυμορφισμός
Στη βιολογία, ο πολυμορφισμός αναφέρεται στα μπαχαρικά που μπορούν να έχουν πολλές διαφορετικές μορφές.
Με την ίδια έννοια στον αντικειμενοστρεφή προγραμματισμό, η θυγατρική τάξη μπορεί να κληρονομήσει τις μεθόδους της μητρικής κλάσης, καθώς και να προσθέσει μοναδικά χαρακτηριστικά σε αυτήν τη συμπεριφορά. Ο πολυμορφισμός μπορεί να επιτευχθεί με μέθοδο υπερφόρτωσης ή παράκαμψης.
Υπερφόρτωση
public class OverloadDemo { public int add( int a,int b) { int rs=a+b; return rs; } public int add( int a,int b,int c) { int rs=a+b+c; return rs; } public static void main(String() args) { OverloadDemo ov=new OverloadDemo(); System.out.println(ov.add(23,56,45)); System.out.println(ov.add(23,56)); } }
Παράκαμψη
public class Bicycle { int wheels=2; String seat; public void riding() { System.out.println('bicycle is used for riding'); } }
public class RoadBicycle extends Bicycle{ public void riding() { System.out.println('RoadBicycle is used for road riding'); } }
public class TestBicycle { public static void main(String() args) { Bicycle b=new RoadBicycle(); b.riding(); } }
ΠΑΡΑΓΩΓΗ: Εδώ η μέθοδος κλάσης παιδιών αντικαθιστά τη μέθοδο γονικής τάξης.
Σούπερ λέξη-κλειδί
Η υπερ-λέξη-κλειδί είναι μια μεταβλητή αναφοράς που χρησιμοποιείται για να αναφέρεται στο αντικείμενο άμεσης γονικής κλάσης. Με τη σούπερ λέξη-κλειδί, μπορείτε να αναφέρετε τη μέθοδο γονικής κλάσης ή τις μεταβλητές ή τον κατασκευαστή.
Αυτή η λέξη-κλειδί
Αυτή η λέξη-κλειδί χρησιμοποιείται για να αναφέρεται στο τρέχον αντικείμενο κλάσης. Χρησιμοποιώντας αυτήν τη λέξη-κλειδί, μπορείτε να αποκτήσετε πρόσβαση στην τρέχουσα μεταβλητή παρουσίας τάξης ή στην τρέχουσα μέθοδο κλάσης. Αυτό μπορεί να περάσει ως επιχείρημα στην κλήση μεθόδου.
public class DemoThisKeyword { private int accno; private int balance; public void setvalues(int accno,int balance) { this.accno=accno; this.balance=balance; } public int showdata() { System.out.println(accno); System.out.println(balance); return balance; } public static void main(String() args) { // TODO Auto-generated method stub DemoThisKeyword obj =new DemoThisKeyword(); obj.setvalues(11, 100); obj.showdata(); System.out.println(obj.showdata()); } }
Οικοδόμος
Οι κατασκευαστές Java είναι σαν μέθοδοι που θα κληθούν όταν δημιουργηθεί το αντικείμενο για την τάξη. Ο κατασκευαστής πρέπει να έχει το ίδιο όνομα με την τάξη.
Class Myclass{ Myclass(); Method1() { } }
Κατά τη δημιουργία ενός αντικειμένου για την τάξη, Myclass myobj = νέο Myclass ();
Η μέθοδος κατασκευαστή θα καλείται. Ο κατασκευαστής δημιουργείται αυτόματα από τον μεταγλωττιστή Java για όλες τις τάξεις από προεπιλογή.
public class ConstructorExampleProgram { int employee_age; String employee_name; int employee_salary; //Default constructor ConstructorExampleProgram(){ this.employee_name=Bob'; this.employee_age=30; this.employee_salary=7000; } //Parameterized constructor ConstructorExampleProgram(String n,int a,int b){ this.employee_name=n; this.employee_age=a; this.employee_salary=b; } public static void main(String args()){ ConstructorExampleProgram obj1 = new ConstructorExampleProgram(); ConstructorExampleProgram obj2 = new ConstructorExampleProgram('clare', 56,7500); System.out.println(obj1.employee_name+' '+obj1.employee_age+' '+obj1.employee_salary); System.out.println(obj2.employee_name+' '+obj2.employee_age+' '+obj2.employee_salary); } }
Κανόνες που πρέπει να ακολουθούνται για τον κατασκευαστή:
- Ο κατασκευαστής πρέπει να έχει το ίδιο όνομα με το όνομα της τάξης.
- Ο κατασκευαστής δεν πρέπει να έχει δήλωση επιστροφής.
Σημεία που πρέπει να σημειωθούν:
- Στον αντικειμενοστραφή προγραμματισμό, τα αντικείμενα είναι το κύριο μέρος του προγραμματισμού.
- Οι έννοιες OOP είναι αντικείμενο, τάξη, κληρονομιά, πολυμορφισμός, κατασκευαστής.
- Σούπερ λέξη-κλειδί που χρησιμοποιείται για τα γονικά μέλη της τάξης και Αυτό Η λέξη-κλειδί χρησιμοποιείται για να αναφέρεται σε ένα τρέχον αντικείμενο κλάσης.
- Οι κατασκευαστές είναι σαν μέθοδοι που θα κληθούν όταν δημιουργηθεί το αντικείμενο για την τάξη.
συμπέρασμα
Αυτό το σεμινάριο κάλυψε τα βασικά στοιχεία σημαντικών αντικειμενοστρεφών λειτουργιών που υποστηρίζονται από την Java. Αυτό είναι απλώς ένα εισαγωγικό σεμινάριο για το OOPS στην Java. Θα καλύψουμε λεπτομερώς όλα τα θέματα στα επόμενα σεμινάρια μας. Η Java υποστηρίζει τέσσερις πυλώνες του OOP, δηλαδή τον πολυμορφισμό, την κληρονομικότητα, την αφαίρεση και την ενθυλάκωση.
Εκτός από αυτές τις δυνατότητες, η Java υποστηρίζει επίσης τις άλλες δυνατότητες και κατασκευές OOP όπως περιορισμός, συγκέντρωση, μετάδοση μηνυμάτων κ.λπ. που θα συζητηθούν στα επερχόμενα σεμινάρια μας.
Συνιστώμενη ανάγνωση
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Τι είναι η αφαίρεση στην Java - Μάθετε με παραδείγματα
- Τι είναι η κληρονομικότητα στην Java - Εκμάθηση με παραδείγματα
- Τι είναι ο πολυμορφισμός στην Ιάβα - Οδηγός με παραδείγματα
- Ενθυλάκωση σε Java: Πλήρης οδηγός με παραδείγματα
- Τύποι κληρονομικότητας στην Java - Single Vs Multiple Inheritance
- OOPS Concepts In C #: Object Oriented Programming Concept Tutorial
- Αντικειμενοστραφής προγραμματισμός στο C ++