oop java introduction object oriented programming java
In diesem Video-Tutorial werden OOP-Konzepte (Object Oriented Programming) in Java vorgestellt, z. B. Objekt, Klasse, Vererbung, Polymorphismus, Abstraktion, Kapselung usw.:
In der Softwareprogrammierung gibt es verschiedene Arten von Programmiersprachen. Die wichtigsten Sprachen unter ihnen sind entweder prozedural oder objektorientiert.
In prozeduralen Programmiersprachen werden größere Probleme in kleine lösbare Probleme zerlegt. Diese kleinen Probleme werden in Prozeduren oder Funktionen umgewandelt. Auf diese Weise betont die prozedurale Programmiersprache eher Funktionen als Daten. Daher haben prozedurale Sprachen Daten vollständig vernachlässigt und gewährleisten daher überhaupt keine Datensicherheit.
Dieses Problem wurde durch eine objektorientierte Programmiersprache behoben. Objektorientierte Programmierung ist eine Möglichkeit, Software durch Manipulieren von Objekten zu entwerfen und zu programmieren, und die Objekte sind der Hauptteil der Programmierung.
Entdecken Sie unsere gesamte Reihe von Java-Tutorials für Anfänger Hier .
Was du lernen wirst:
Video-Tutorials zu OOPS-Konzepten
OOPS-Konzept in Java - Teil 1:
Eingehender Blick auf das OOPS-Konzept in Java - Teil 2:
Objektorientierte Programmiersprachen legen mehr Wert auf Daten als auf Funktionen. Die objektorientierte Programmierung (OOP) dreht sich um Objekte, d. H. Eine Echtzeitentität.
Dieses Objekt bündelt Daten und die Methoden, die mit diesen Daten arbeiten, in einer Einheit. Auf diese Weise werden die Daten vor der Außenwelt geschützt, indem die Methoden im Objekt enthalten sind. In OOP kommunizieren die Objekte über Nachrichten miteinander.
Jede OOP-Sprache unterstützt die folgenden Funktionen:
- Klassen
- Verkapselung
- Abstraktion
- Erbe
- Polymorphismus
All diese Funktionen stellen sicher, dass die Daten gesichert sind und gleichzeitig können wir auch robuste Anwendungen schreiben. Smalltalk, C ++, Java usw. sind einige der objektorientierten Programmiersprachen.
In diesem Tutorial werden die Grundlagen von OOP in Bezug auf die Java-Sprache erläutert.
Objektorientierte Programmierung (OOP) In Java
Java ist derzeit die gefragteste Programmierkenntnis. In Java basiert alles auf dem Objekt. Java hat eine Stammklasse namens Object, von der die gesamte Funktionalität von Java abgeleitet wird. In diesem Tutorial werden wir daher die Hauptfunktionen von OOP in Bezug auf Java diskutieren.
Empfohlene Lektüre => Fragen und Antworten zum OOP-Interview
Hier werden wir diskutieren, wie Java die folgenden OOP-Funktionen unterstützt.
- Objekt & Klasse
- Klasse
- Erbe
- Polymorphismus
- Abstraktion
- Verkapselung
Lassen Sie uns jedes dieser Java OOP-Konzepte im Detail diskutieren.
Objekt & Klasse
Eine Klasse kann als Entwurfsprototyp oder Blaupause definiert werden. Aus diesen Blaupausen werden Objekte erstellt. Es definiert im Wesentlichen einen gemeinsamen Typ, der aus Eigenschaften und Methoden besteht, die diese Eigenschaften für diesen gemeinsamen Typ verarbeiten. Dann definieren wir die Instanzen dieser Klasse, die als Objekte bezeichnet werden.
Eine Klasse hat viele Komponenten, wie in der folgenden Abbildung gezeigt.
Ein Objekt repräsentiert eine reale Entität. In Java ist ein Objekt eine Instanz einer Klasse. Eine Klasse, die eine Blaupause ist, kann also verwendet werden, um viele Objekte zu erstellen. Diese Objekte kommunizieren häufig miteinander, indem sie Nachrichten über Methoden aneinander weiterleiten.
Video-Tutorial: Klassen & Objekte
Ein Objekt hat normalerweise:
- Ein Staat: Die Eigenschaften oder Attribute eines Objekts zu einem bestimmten Zeitpunkt.
- Verhalten: Methoden repräsentieren das Verhalten eines Objekts. Methoden definieren auch, wie die Objekte kommunizieren.
- Identität: Identifiziert das Objekt, indem es ihm einen eindeutigen Namen gibt.
Zum Beispiel, wenn wir eine Klasse PetAnimals haben.
Dann können wir ein Objekt dieser Klasse wie folgt definieren:
PetAnimals pig = neue PetAnimals.
Hier ist die Identität des Objekts ein Schwein.
Im Folgenden finden Sie ein Programm, das Klasse und Objekt demonstriert.
//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); } }
Ausgabe
In der obigen Klasse haben wir eine Klasse Student mit zwei Eigenschaften roll_No und student_name definiert. Dann deklarieren wir in der Hauptmethode zwei Klassenobjekte, d. H. Student1 und student2. Beachten Sie, dass diese Objekte mit einem neuen Operator erstellt werden. Sobald die Objekte erstellt sind, weisen wir beiden Objekteigenschaften Daten zu.
Schließlich drucken wir den Objektinhalt mit dem Operator '.' (Punkt).
Weitere Informationen zu Klassen und Objekten finden Sie in unseren spezifischen Themen zu OOP-Tutorials.
Erbe
Vererbung ist eines der wichtigsten Merkmale von OOP. Durch die Vererbung fördert Java die Wiederverwendbarkeit von Code.
Was ist eine Vererbung in Java?
Vererbung ist ein Mechanismus in Java, bei dem eine Klasse die Eigenschaften einer anderen Klasse erben kann. Zu den Eigenschaften, die vererbt werden können, gehören Datenelemente und Methoden der Klasse.
Die Klasse, die die Eigenschaften einer anderen Klasse erbt, wird als Unterklasse bezeichnet. Die geerbte Klasse wird in Java als 'Super' -Klasse bezeichnet.
Durch das Erben der Klasse erbt die Unterklasse nicht nur die Eigenschaften, sondern verwendet den Code auch wieder, da der Programmierer den Code nicht erneut schreiben muss, wenn er ihn mithilfe der Vererbung direkt erben kann.
In Java wird die Vererbung mithilfe des Schlüsselworts 'extensiv' erreicht. Dieses erweiterte Schlüsselwort wird in der Definition der Klasse verwendet, gefolgt vom Klassennamen, der vererbt werden soll.
Zum Beispiel,Wenn es zwei Klassen gibt, A und B, und A von B geerbt werden soll, wird diese Vererbung in Java wie folgt geschrieben:
class B extends A { …… }
Wie bereits erwähnt, ist hier A die Oberklasse oder Basisklasse oder Elternklasse. B ist eine Unterklasse, abgeleitete Klasse oder untergeordnete Klasse.
Die Vererbung wird weiter in die folgenden Typen unterteilt.
Java unterstützt die einstufige, mehrstufige und hierarchische Vererbung.
Beachten Sie, dass Java keine Mehrfachvererbungen unterstützt. Java unterstützt auch keine hybride Vererbung, bei der es sich um eine Kombination aus mehreren und hierarchischen Vererbungen handelt.
Im Folgenden finden Sie ein Beispielprogramm für Single Inheritance in 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)); } }
Ausgabe
Im obigen Programm haben wir einen Mitarbeiter der Basisklasse. Wir haben einen anderen Klassenentwickler, der von der Employee-Klasse erbt. In der Hauptmethode können wir sehen, dass wir durch Deklarieren eines Objekts der Developer-Klasse nicht nur auf die Eigenschaften der Developer-Klasse zugreifen können, sondern auch auf die Employee-Klasse, wie sie von der Developer-Klasse geerbt wird.
Polymorphismus
Polymorphismus ist ein weiteres wichtiges Merkmal von OOP. Polymorphismus ist die Fähigkeit der Sprache, Objekten oder Entitäten die Annahme mehrerer Formen zu ermöglichen. Zum Beispiel, Eine Methode mit verschiedenen Implementierungen ist in Java polymorph.
In Java gibt es zwei Arten von Polymorphismus:
- Überladen oder Kompilieren von Zeitpolymorphismus: Beim Polymorphismus zur Kompilierungszeit wird der Aufruf der polymorphen oder überladenen Methode zur Kompilierungszeit aufgelöst.
- Überschreibender oder Laufzeitpolymorphismus: Beim Laufzeitpolymorphismus wird der Aufruf einer überschriebenen Methode im Java-Programm zur Laufzeit aufgelöst.
Wir werden den Polymorphismus in unseren nachfolgenden Tutorials ausführlich diskutieren.
Im Folgenden finden Sie ein Beispiel für einen Polymorphismus zur Kompilierungszeit in Java, bei dem die Methode add überladen ist, um eine Addition mit verschiedenen Operandentypen durchzuführen.
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)); } }
Ausgabe
In diesem Programm haben wir drei überladene Methoden namens add. Die erste Methode verwendet zwei int-Parameter, die nächste Methode verwendet drei int-Parameter und die dritte Methode verwendet zwei doppelte Parameter. Abhängig von der Anzahl der Parameter wird der Methodenaufruf zur Kompilierungszeit aufgelöst und der entsprechende Aufruf erfolgt.
Abstraktion
Mit der Datenabstraktion legen wir nur die wesentlichen Teile der Anwendung offen, die dem Benutzer zugänglich gemacht werden. Zum Beispiel, Wenn wir ein Auto haben, kümmern wir uns nicht um die internen Komponenten des Autos, sondern betrachten nur das Auto als Ganzes.
Mithilfe eines Datenabstraktionsmechanismus identifizieren wir nur die erforderlichen Details und ignorieren die irrelevanten Details. Java verwendet abstrakte Klassen und Schnittstellen, um eine Abstraktion zu erreichen. Schnittstellen sind zu 100% abstrakt, da sie nur Methodenprototypen und nicht deren Definition enthalten.
Das folgende Beispiel zeigt eine abstrakte Klasse und ihre Verwendung.
// 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(); } }
Ausgabe
Im obigen Programm haben wir eine abstrakte Klasse PetAnimals. Hier haben wir eine abstrakte Methode 'animalSound'. Dann erstellen wir eine Hundeklasse und erben die PetAnimals-Klasse. In der Dog-Klasse überschreiben wir die animalSound-Methode.
beste Websites, um Anime online zu sehen
Verkapselung
Durch die Kapselung werden Daten ausgeblendet oder geschützt. Bei der Programmierung erreichen wir die Kapselung, indem wir Daten und Methoden, die mit diesen Daten arbeiten, unter einer einzigen Einheit zusammenfassen.
Video-Tutorial: Kapselung und Polymorphismus in Java
Eine Klasse kann als Kapselungseinheit angesehen werden, d. H. Wir haben Datenelemente und Methoden, die mit diesen Datenelementen arbeiten, die in einer einzigen Einheit gebündelt sind.
Eine ordnungsgemäße Kapselung kann erreicht werden, indem Datenmitglieder privat gemacht werden und die Methoden, die mit diesen Daten arbeiten, öffentlich sind, sodass die Daten vollständig vor externen Entitäten geschützt sind.
Das folgende Java-Programm demonstriert das Kapselungskonzept.
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()); } }
Ausgabe
Im obigen Programm haben wir eine Klasse Customer_Account.
In dieser Klasse haben wir Datenelemente, die alle privat sind. Dann stellen wir für jedes private Feld Getter- und Setter-Methoden zum Lesen bzw. Setzen von Werten bereit. Diese Getter und Setter sind öffentlich. Auf diese Weise schützen wir die Datenfelder, indem wir ihnen keinen direkten Zugriff von außerhalb der Klasse gewähren.
Sie sind nur über Getter und Setter zugänglich. Dies zeigt die oben beschriebene Kapselung.
Häufig gestellte Fragen
F # 1) Was versteht man unter objektorientierter Programmierung?
Antworten: Objektorientierte Programmierung (OOP) ist ein Software-Paradigma, das sich um Daten dreht. In OOP liegt der Schwerpunkt auf Daten, und daher werden Probleme in Form von Objekten ausgedrückt, die Entitäten sind, die aus Daten oder Feldern bestehen, und Methoden, die mit diesen Datenfeldern arbeiten.
Auf diese Weise werden verschiedene Unterscheidungsmerkmale von OOP wie Vererbung, Polymorphismus, Abstraktion und Kapselung angewendet, um Datensicherheit, Wiederverwendbarkeit usw. zu gewährleisten.
F # 2) Was sind die 4 Grundprinzipien von OOP?
Antworten:Objektorientierte Programmierung (OOP) hat vier Grundprinzipien:
- Erbe
- Polymorphismus
- Abstraktion
- Verkapselung
Sie werden auch vier Säulen der OOP genannt.
F # 3) Warum heißt Java objektorientiert?
Antworten: Java hat ein Root-Klassenobjekt, von dem wir alle anderen Funktionen von Java ableiten. Ohne Klasse und Objekt können wir also kein Java-Programm haben. Daher wird Java als OOP-Sprache bezeichnet.
F # 4) Ist Java rein objektorientiert?
Antworten: Nein, Java ist keine reine objektorientierte Sprache. Da Java auch primitive Datentypen wie int, char, float, double, long usw. bereitstellt, wird es nicht als reine OOP-Sprache klassifiziert.
F # 5) Was ist der Unterschied zwischen C ++ und Java?
Antworten: Sowohl C ++ als auch Java sind objektorientierte Sprachen und unterstützen OOP-Funktionen. Aber C ++ ist eine kompilierte Sprache. Java hingegen wird ebenso kompiliert wie eine interpretierte Sprache.
Der Java-Interpreter führt den Bytecode zur Laufzeit aus und generiert eine Ausgabe, die ihn plattformunabhängig macht. C ++ ist jedoch plattformabhängig.
Mehr zum OOPS-Konzept
Klasse
Die Klasse ist eine Blaupause / ein Prototyp eines realen Objekts und modelliert den Zustand und das Verhalten dieses realen Objekts.
Klassenerklärung
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. }
Objekt
Softwareobjekte sind wie reale Objekte mit Zustand und Verhalten. Der Status wird als Feld gespeichert und macht sein Verhalten als Methoden verfügbar.
Hier ist Raum wie allgemeines Design. In diesem Raum sollten Sie ein Wohnzimmer, ein Kochzimmer und ein Schlafzimmer entwerfen.
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(); }
Hier sollte die Methode „Keepthings ()“ die für den Raum erforderlichen Grundfunktionen erfüllen und zusätzliche Spezifikationen gemäß den Anforderungen der Klassen „Wohnzimmer“ und „Kochraum“ enthalten. Daher sollten die beiden Klassen die Methoden in der Klasse 'room' erben.
Erbe
Verhalten (Methoden) und Status einer Klasse, die an die andere Klasse vererbt wurde, werden als Vererbung bezeichnet. Die Methoden und der Status werden von der übergeordneten Klasse an die untergeordnete Klasse vererbt.
So,
Class CookingRoom extends Room{ }
Class LivingRoom extends Room{ }
Polymorphismus
In der Biologie bezieht sich Polymorphismus auf die Gewürze, die viele verschiedene Formen haben können.
Mit demselben Konzept in der objektorientierten Programmierung kann die untergeordnete Klasse ihre übergeordneten Klassenmethoden erben und diesem Verhalten eindeutige Funktionen hinzufügen. Polymorphismus kann durch Überladen oder Überschreiben von Methoden erreicht werden.
Überlastung
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)); } }
Überschreiben
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(); } }
AUSGABE: Hier überschreibt die untergeordnete Klassenmethode die übergeordnete Klassenmethode.
Super Keyword
Das Super-Schlüsselwort ist eine Referenzvariable, die verwendet wird, um auf das unmittelbare übergeordnete Klassenobjekt zu verweisen. Mit dem Schlüsselwort super können Sie auf die übergeordnete Klassenmethode oder auf Variablen oder den Konstruktor verweisen.
Dieses Schlüsselwort
Dieses Schlüsselwort wird verwendet, um auf das aktuelle Klassenobjekt zu verweisen. Mit diesem Schlüsselwort können Sie auf die aktuelle Klasseninstanzvariable oder die aktuelle Klassenmethode zugreifen. Dies kann als Argument im Methodenaufruf übergeben werden.
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()); } }
Baumeister
Java-Konstruktoren sind wie Methoden, die aufgerufen werden, wenn das Objekt für die Klasse erstellt wird. Der Konstruktor sollte denselben Namen wie die Klasse haben.
Class Myclass{ Myclass(); Method1() { } }
Beim Erstellen eines Objekts für die Klasse ist Myclass myobj = new Myclass ();
Die Konstruktormethode wird aufgerufen. Der Konstruktor wird standardmäßig automatisch vom Java-Compiler für alle Klassen erstellt.
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); } }
Für den Konstruktor zu befolgende Regeln:
- Der Konstruktor sollte denselben Namen wie der Klassenname haben.
- Der Konstruktor sollte keine return-Anweisung haben.
Zu beachtende Punkte:
- In der objektorientierten Programmierung sind Objekte der Hauptteil der Programmierung.
- OOP-Konzepte sind Objekt, Klasse, Vererbung, Polymorphismus, Konstruktor.
- Super Schlüsselwort, das verwendet wird, um auf die übergeordneten Klassenmitglieder zu verweisen, und Dies Das Schlüsselwort wird verwendet, um auf ein aktuelles Klassenobjekt zu verweisen.
- Konstruktoren sind wie Methoden, die aufgerufen werden, wenn das Objekt für die Klasse erstellt wird.
Fazit
In diesem Tutorial wurden die Grundlagen wichtiger objektorientierter Funktionen behandelt, die von Java unterstützt werden. Dies ist nur eine Einführung in OOPS in Java. In unseren nachfolgenden Tutorials werden wir alle Themen ausführlich behandeln. Java unterstützt vier Säulen der OOP, d. H. Polymorphismus, Vererbung, Abstraktion und Kapselung.
Neben diesen Funktionen unterstützt Java auch die anderen Funktionen und OOP-Konstrukte wie Containment, Aggregation, Nachrichtenübermittlung usw., die in unseren nächsten Tutorials behandelt werden.
Literatur-Empfehlungen
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Was ist Abstraktion in Java? Lernen Sie anhand von Beispielen
- Was ist Vererbung in Java - Tutorial mit Beispielen
- Was ist Polymorphismus in Java - Tutorial mit Beispielen
- Kapselung in Java: Vollständiges Tutorial mit Beispielen
- Arten der Vererbung in Java - Einzel- gegen Mehrfachvererbung
- OOPS-Konzepte in C #: Lernprogramm für objektorientierte Programmierkonzepte
- Objektorientierte Programmierung in C ++