oop java introduction object oriented programming java
Denne videoopplæringen vil introdusere OOP-konsepter (Object Oriented Programming) i Java som Object, Class, Arv, Polymorfisme, Abstraksjon, Encapsulation, etc:
I programvareprogrammering har vi forskjellige typer programmeringsspråk. Store språk blant dem er enten prosessuelle eller objektorienterte.
I prosessuelle programmeringsspråk er større problemer delt inn i små løsbare problemer. Disse små problemene blir omgjort til prosedyrer eller funksjoner. På denne måten fremhever det prosessuelle programmeringsspråket funksjoner i stedet for data. Dermed forsømte prosessuelle språk data fullstendig, og dermed sikrer de ikke datasikkerhet i det hele tatt.
Dette problemet ble ivaretatt av objektorientert programmeringsspråk. Objektorientert programmering er en måte å designe og programmere programvare på ved å manipulere objekter, og objektene er hoveddelen av programmeringen.
Oppdag hele serien vår av Java-opplæringsprogrammer for nybegynnere her .
Hva du vil lære:
Videoopplæring om OOPS-konsepter
OOPS Concept i Java - Del 1:
Grundig titt på OOPS Concept i Java - Del 2:
Objektorienterte programmeringsspråk legger vekt på data mer enn funksjonene. Den objektorienterte programmeringen (OOP) dreier seg om objekter, dvs. en sanntidsenhet.
Dette objektet samler data og metodene som fungerer på disse dataene i en enhet. På denne måten blir dataene beskyttet mot omverdenen ved å ha metodene inne i objektet. I OOP kommuniserer objektene med hverandre gjennom meldinger.
Ethvert OOP-språk støtter følgende funksjoner:
- Klasser
- Innkapsling
- Abstraksjon
- Arv
- Polymorfisme
Alle disse funksjonene sikrer at dataene er sikret, og samtidig kan vi også skrive robuste applikasjoner. Smalltalk, C ++, Java, etc er noen av de objektorienterte programmeringsspråkene.
I denne veiledningen vil vi diskutere det grunnleggende om OOP om Java-språk.
Objektorientert programmering (OOP) i Java
Java er den mest etterspurte programmeringsferdigheten for tiden. I Java er alt basert på objektet. Java har en rotklasse kalt Object som hele Java-funksjonaliteten kommer fra. I denne veiledningen vil vi derfor diskutere hovedtrekkene til OOP angående Java.
Anbefalt lesing => OOP intervju spørsmål og svar
Her skal vi diskutere hvordan Java støtter følgende OOP-funksjoner.
- Objekt og klasse
- Klasse
- Arv
- Polymorfisme
- Abstraksjon
- Innkapsling
La oss diskutere hvert av disse Java OOP-konseptene i detalj.
Objekt og klasse
En klasse kan defineres som en designprototype eller en blåkopi. Objekter er laget av disse tegningene. Den definerer i hovedsak en vanlig type som består av egenskaper og metoder som fungerer på disse egenskapene for denne vanlige typen. Deretter definerer vi forekomster av denne klassen som kalles objekter.
En klasse har mange komponenter som vist i følgende figur.
Et objekt representerer en virkelig enhet. I Java er et objekt en forekomst av en klasse. Så en klasse som er en blåkopi kan brukes til å lage mange objekter. Disse objektene kommuniserer ofte med hverandre ved å sende meldinger til hverandre gjennom metoder.
Videoopplæring: Klasser og objekter
Et objekt har vanligvis:
- En stat: Egenskapene eller egenskapene til et objekt på et bestemt tidspunkt.
- Oppførsel: Metoder representerer oppførselen til et objekt. Metoder definerer også hvordan objektene kommuniserer.
- Identitet: Identifiserer objektet ved å gi det et unikt navn.
For eksempel, hvis vi har en klasse PetAnimals.
Deretter kan vi definere et objekt i denne klassen som følger:
PetAnimals gris = nye PetAnimals.
Her er objektets identitet en gris.
Nedenfor er et program som demonstrerer klasse og objekt.
//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); } }
Produksjon
I ovennevnte klasse har vi definert en klasse Student med to egenskaper roll_No og student_name. Så i hovedmetoden erklærer vi to klasseobjekter, dvs. student1 og student2. Merk at disse objektene er opprettet ved hjelp av en ny operator. Når objektene er opprettet, tildeler vi data til begge objektegenskapene.
Til slutt skriver vi ut innholdet på objektet ved hjelp av ‘.’ (Dot) operator.
Vi lærer mer om klasser og objekter i våre spesifikke OOP-opplæringsemner.
Arv
Arv er en av de viktigste egenskapene til OOP. Gjennom arv fremmer Java gjenbrukbarhet av kode.
Så hva er en arv i Java?
Arv er en mekanisme i Java der en klasse kan arve egenskapene til en annen klasse. Egenskapene som kan arves inkluderer datamedlemmer og metoder i klassen.
Klassen som arver egenskapene til en annen klasse kalles underklassen. Den arvede klassen er kjent som “super” -klassen i Java.
Ved å arve klassen, arver underklassen ikke bare egenskapene, men gjenbruker også koden, ettersom programmereren ikke nok en gang trenger å skrive koden når den direkte kan arve den ved hjelp av arv.
I Java oppnås arv ved å bruke nøkkelordet 'utvider'. Dette utvider nøkkelordet brukes i definisjonen av klassen og etterfølges av klassenavnet som skal arves.
For eksempel,hvis det er to klasser, A og B, og A skal arves av B, så er denne arven skrevet i Java som:
class B extends A { …… }
Som allerede nevnt er her A superklassen eller baseklassen eller foreldreklassen. B er en underklasse, avledet klasse eller barneklasse.
Arv er videre delt inn i følgende typer.
Java støtter enkelt-, flernivå- og hierarkisk arv.
Merk at Java ikke støtter flere arv. Java støtter heller ikke hybridarv som er en kombinasjon av flere og hierarkiske arv.
Nedenfor er et eksempel på program for Single Arv i 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)); } }
Produksjon
I det ovennevnte programmet har vi en basisklasse ansatt. Vi har en annen klasseutvikler som arver fra medarbeiderklassen. I hovedmetoden kan vi se at ved å erklære et objekt for utviklerklassen kan vi ikke bare få tilgang til egenskapene til utviklerklassen, men også til medarbeiderklassen, da den arves av utviklerklassen.
Polymorfisme
Polymorfisme er nok et viktig trekk ved OOP. Polymorfisme er språkets evne til å la objekter eller enheter anta flere former. For eksempel, en metode som har forskjellige implementeringer er polymorf i Java.
Polymorfisme er av to typer i Java:
- Overbelastning eller kompilering av polymorfisme: I kompileringstidspolymorfisme løses kallet til den polymorfe eller overbelastede metoden ved kompileringstidspunktet.
- Overstyring eller kjøretidspolymorfisme: I løpetidspolymorfisme løses anropet til en overstyrt metode i Java-programmet ved kjøretid.
Vi vil diskutere polymorfisme i detalj i de påfølgende opplæringene våre.
Nedenfor er et eksempel på kompileringstidspolymorfisme i Java hvor vi har metodetillegg som er overbelastet for å utføre tillegg med forskjellige operandtyper.
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)); } }
Produksjon
I dette programmet har vi tre overbelastede metoder som heter add. Den første metoden tar to int-parametere, den neste metoden tar tre int-parametere og den tredje metoden tar to doble parametere. Avhengig av antall parametere blir metodeanropet løst ved kompileringstid og riktig samtale foretatt.
Abstraksjon
Ved bruk av dataabstraksjon avslører vi bare de viktigste delene av applikasjonen som blir gjort tilgjengelig for brukeren. For eksempel, hvis vi har en bil, er vi ikke bekymret for de interne komponentene i bilen, men vi ser bare på bilen som en helhet.
Ved hjelp av en dataabstraheringsmekanisme identifiserer vi bare de nødvendige detaljene og ignorerer de irrelevante detaljene. Java bruker abstrakte klasser og grensesnitt for å oppnå abstraksjon. Grensesnitt er 100% abstrakte da de bare har metodeprototyper og ikke deres definisjon.
Eksemplet nedenfor viser en abstrakt klasse og bruken av den.
// 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(); } }
Produksjon
I programmet ovenfor har vi en abstrakt klasse PetAnimals. I dette har vi en abstrakt metode ‘animalSound’. Deretter oppretter vi en hundeklasse og arver PetAnimals-klassen. I hundeklassen overstyrer vi animalSound-metoden.
hva betyr sikkerhetsnøkkelforskjell
Innkapsling
Innkapsling skjuler data eller beskytter dataene. I programmeringen oppnår vi innkapsling ved å pakke inn data og metoder som fungerer på disse dataene under en enkelt enhet.
Videoopplæring: innkapsling og polymorfisme i Java
En klasse kan sees på som en innkapslingsenhet, dvs. vi har dataelementer og metoder som fungerer på disse datalementene som samlet i en enkelt enhet.
Riktig innkapsling kan oppnås ved å gjøre datamedlemmer private og ha metodene som fungerer på disse dataene som offentlige, slik at data er fullstendig beskyttet mot eksterne enheter.
Java-programmet nedenfor viser innkapslingskonseptet.
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()); } }
Produksjon
I programmet ovenfor har vi en klasse Customer_Account.
I denne klassen har vi datamedlemmer som alle er private. Så for hvert private felt, gir vi getter- og settermetoder for å lese og sette verdier henholdsvis. Disse getters og setters er offentlige. På denne måten beskytter vi datafeltene ved ikke å gi dem tilgang direkte fra utenfor klassen.
De er kun tilgjengelige via getters og settere. Dette demonstrerer innkapslingen som vi beskrev ovenfor.
ofte stilte spørsmål
Q # 1) Hva menes med objektorientert programmering?
Svar: Objektorientert programmering (OOP) er et programvareparadigme som dreier seg om data. I OOP er det lagt vekt på data og dermed uttrykkes problemer i form av objekter som er enheter som består av data eller felt og metoder som fungerer på disse datafeltene.
Ved å gjøre dette brukes flere kjennetegn ved OOP som arv, polymorfisme, abstraksjon og innkapsling for å sikre datasikkerhet, gjenbrukbarhet, etc.
Q # 2) Hva er de 4 grunnleggende prinsippene for OOP?
Svar:Objektorientert programmering (OOP) har fire grunnleggende prinsipper:
- Arv
- Polymorfisme
- Abstraksjon
- Innkapsling
De kalles også fire søyler i OOP.
Spørsmål 3) Hvorfor kalles Java Objektorientert?
Svar: Java har et rotklasseobjekt som vi henter alle de andre funksjonene i Java fra. Dermed uten klasse og objekt kan vi ikke ha et Java-program. Derfor kalles Java OOP-språk.
Q # 4) Er Java rent objektorientert?
Svar: Nei, Java er ikke et rent objektorientert språk. Ettersom Java også gir primitive datatyper som int, char, float, double, long, etc. er det ikke klassifisert som et rent OOP-språk.
Q # 5) Hva er forskjellen mellom C ++ og Java?
Svar: Både C ++ og Java er objektorienterte språk og støtter OOP-funksjoner. Men C ++ er et kompilert språk. Java derimot er samlet så vel som et tolket språk.
Java-tolk utfører byte-koden ved kjøretid og genererer utdata som gjør den plattformuavhengig. C ++ er imidlertid plattformavhengig.
Mer om OOPS Concept
Klasse
Klassen er en tegning / prototype av et objekt fra den virkelige verden, og det modellerer tilstanden og oppførselen til det virkelige objektet.
Klassedeklarasjon
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. }
Gjenstand
Programvareobjekter er som virkelige objekter med tilstand og oppførsel. Staten vil bli lagret som et felt og avsløre dens oppførsel som metoder.
Her er rommet som generelt design. Innenfor dette rommet, bør du designe en stue, et kjøkken, et soverom.
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(); }
Her bør “Keepthings ()” -metoden utføre de grunnleggende funksjonene som kreves for rommet, og den skal ha ytterligere spesifikasjoner i henhold til 'stue' -klassen og 'matlagingsrommet'. Så de to klassene bør arve metodene i 'rom' -klassen.
Arv
Atferd (metoder) og tilstanden til en klasse arvet til den andre klassen kalles arv. Metodene og tilstanden arves fra foreldreklassen til barneklassen.
Så,
Class CookingRoom extends Room{ }
Class LivingRoom extends Room{ }
Polymorfisme
I biologi refererer polymorfisme til krydder som kan ha mange forskjellige former.
Med det samme konseptet i objektorientert programmering, kan barneklassen arve sine foreldreklassemetoder, og den kan også legge unike funksjoner til den oppførselen. Polymorfisme kan oppnås ved metodeoverbelastning eller overstyring.
Overbelastning
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)); } }
Overstyring
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(); } }
PRODUKSJON: Her overstyrer barneklassemetoden foreldreklassemetoden.
Super Keyword
Super nøkkelord er en referansevariabel som brukes til å referere til det umiddelbare overordnede klasseobjektet. Med super søkeord kan du henvise til overordnede klassemetode eller variabler eller konstruktør.
Dette nøkkelordet
Dette nøkkelordet brukes til å referere til gjeldende klasseobjekt. Ved å bruke dette nøkkelordet får du tilgang til den gjeldende klasseinstansvariabelen eller gjeldende klassemetode. Dette kan sendes som et argument i metodeanropet.
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()); } }
Bygger
Java-konstruktører er som metoder som vil kalles når objektet blir opprettet for klassen. Konstruktøren skal ha samme navn som klassen.
Class Myclass{ Myclass(); Method1() { } }
Mens du oppretter et objekt for klassen, er Myclass myobj = new Myclass ();
Konstruktormetoden vil bli kalt. Konstruktøren blir automatisk opprettet av Java-kompilator for alle klassene som standard.
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); } }
Regler som skal følges for konstruktøren:
- Konstruktøren skal ha samme navn som klassens navn.
- Konstruktøren skal ikke ha returoppgave.
Poeng å merke seg:
- I Objektorientert programmering er objekter hoveddelen av programmering.
- OOP-begreper er objekt, klasse, arv, polymorfisme, konstruktør.
- Super nøkkelord som brukes til å referere til foreldreklassemedlemmene, og dette nøkkelord brukes til å referere til et gjeldende klasseobjekt.
- Konstruktører er som metoder som vil kalles når objektet blir opprettet for klassen.
Konklusjon
Denne opplæringen dekket det grunnleggende om viktige objektorienterte funksjoner som støttes av Java. Dette er bare en innledende opplæring om OOPS i Java. Vi vil dekke alle emnene i detalj i de påfølgende opplæringene våre. Java støtter fire søyler i OOP, dvs. polymorfisme, arv, abstraksjon og innkapsling.
Bortsett fra disse funksjonene, støtter Java også de andre funksjonene og OOP-konstruksjoner som inneslutning, aggregering, meldingsoverføring etc. som vil bli diskutert i våre kommende opplæringsprogrammer.
Anbefalt lesing
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Hva er abstraksjon i Java - lær med eksempler
- Hva er arv i Java - Veiledning med eksempler
- Hva er polymorfisme i Java - Veiledning med eksempler
- Innkapsling i Java: Komplett opplæring med eksempler
- Typer arv i Java - Single Vs Multiple Arv
- OOPS Concepts In C #: Object Oriented Programming Concept Tutorial
- Objektorientert programmering i C ++