Welcome to Our Website

OOPs concepts in Java

objektorienterat programmeringssystem(OOPs) är ett programmeringsparadigm baserat på begreppet ”objekt” som innehåller data och metoder. Det primära syftet med objektorienterad programmering är att öka flexibilitet och underhåll av program. Objektorienterad programmering samlar data och dess beteende(metoder) på en enda plats(objekt) gör det lättare att förstå hur ett program fungerar. Vi kommer att täcka varje funktion i OOPs i detalj så att du inte kommer att möta några svårt att förstå OOPs begrepp.,

OOPs Concepts – Innehållsförteckning

  1. Vad är ett objekt
  2. vad är en klass
  3. konstruktör i Java
  4. objektorienterade programmeringsfunktioner
    • abstraktion
    • inkapsling
    • arv
    • polymorfism
  5. abstrakt klass och metoder
  6. gränssnitt i Java

Vad är ett objekt


objekt: är en bunt av data och dess beteende(ofta känd som metoder).

objekt har två egenskaper: de har tillstånd och beteenden.,

exempel på stater och beteenden
exempel 1:
objekt: hus
tillstånd: adress,Färg, område
beteende: öppen dörr, Stäng dörr

Så om jag var tvungen att skriva en klass baserad på stater och beteenden i huset. Jag kan göra det så här: stater kan representeras som instansvariabler och beteenden som metoder för klassen. Vi kommer att se hur man skapar klasser i nästa avsnitt i den här guiden.

class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}

Obs! som vi har sett ovan kan ett objekts tillstånd och beteenden representeras av variabler respektive metoder i klassen.,

egenskaper hos objekt:

om du har svårt att förstå abstraktion och inkapsling, oroa dig inte eftersom jag har täckt dessa ämnen i detalj med exempel i nästa avsnitt i den här guiden.

  1. abstraktion
  2. inkapsling
  3. meddelande som passerar

abstraktion: abstraktion är en process där du bara visar ”relevanta” data och ”dölja” onödiga detaljer om ett objekt från användaren.

inkapsling: inkapsling betyder helt enkelt bindande objekttillstånd(fält) och beteende(metoder) tillsammans. Om du skapar klass, gör du inkapsling.,

meddelande som passerar
ett enda objekt i sig kanske inte är särskilt användbart. Ett program innehåller många objekt. Ett objekt interagerar med ett annat objekt genom att åberopa metoder för det objektet. Det kallas också metod anrop. Se diagrammet nedan.

Vad är en klass i OOPs Concepts

en klass kan betraktas som en plan med vilken du kan skapa så många objekt som du vill. Till exempel, här har vi en klass Website som har två datamedlemmar (även känd som fält, instansvariabler och objekttillstånd)., Detta är bara en plan, det representerar inte någon webbplats, men med hjälp av detta kan vi skapa Webbplatsobjekt (eller instanser) som representerar webbplatserna. Vi har skapat två objekt, samtidigt som vi skapade objekt som vi gav separata egenskaper till objekten med konstruktören.

utgång:

beginnersbook 5google 18

Vad är en konstruktör

konstruktören ser ut som en metod men det är faktiskt inte en metod. Det är namnet är samma som klassnamn och det returnerar inte något värde., Du måste ha sett detta uttalande i nästan alla program jag har delat ovan:

MyClass obj = new MyClass();

om du tittar på höger sida av detta uttalande ringer vi standardkonstruktören av klass myClass för att skapa ett nytt objekt (eller instans).

Vi kan också ha parametrar i konstruktören, sådana konstruktörer kallas parametriserade konstruktörer.,

exempel på konstruktör

utgång:

Chaitanya 30Steve 56

objektorienterade programmeringsfunktioner


dessa fyra funktioner är de viktigaste OOPs-begreppen som du måste lära dig att förstå objektorienterad programmering i Java

abstraktion

abstraktion är en process där du visar bara ”relevanta” data och ”dölj” onödiga detaljer om ett objekt från användaren., När du till exempel loggar in på ditt bankkonto online anger du ditt user_id och lösenord och trycker på Logga in, vad händer när du trycker på Logga in, hur inmatningsdata skickas till servern, hur det blir verifierat är allt abstraherat bort från dig. Läs mer om det här: abstraktion i Java.

inkapsling

inkapsling innebär helt enkelt bindande objekttillstånd(fält) och beteende(metoder) tillsammans. Om du skapar klass, gör du inkapsling.,

Inkapslingsexempel i Java

så här
1) Gör instansvariablerna privata så att de inte kan nås direkt utanför klassen. Du kan bara ställa in och få värden för dessa variabler genom metoderna i klassen.
2) har getter och setter metoder i klassen för att ställa in och få värdena för fälten.

Output:

No Of Employees: 5613

klassenEncapsulationExample som använder objektet av klassenEmployeeCount kommer inte att kunna få Noofanställda direkt., Den måste använda setter och getter metoder i samma klass för att ställa in och få värdet.
så vad är fördelen med inkapsling i java-programmering
Tja, vid någon tidpunkt, om du vill ändra implementeringsdetaljerna för klassen EmployeeCount, kan du fritt göra det utan att påverka klasserna som använder den.

arv

den process genom vilken en klass förvärvar egenskaper och funktioner i en annan klass kallas arv., Arv ger idén om återanvändbarhet av kod och varje underklass definierar endast de funktioner som är unika för det, resten av funktionerna kan ärvas från moderklassen.

  1. arv är en process för att definiera en ny klass baserad på en befintlig klass genom att utvidga sina gemensamma datamedlemmar och metoder.
  2. arv tillåter oss att återanvända kod, det förbättrar återanvändbarheten i din java-applikation.
  3. moderklassen kallas basklassen eller superklassen. Den barnklass som utökar basklassen kallas härledd klass eller underklass eller barnklass.,

Obs: den största fördelen med arv är att koden i basklass inte behöver skrivas om i barnklassen.
variablerna och metoderna för basklassen kan också användas i barnklassen.

Syntax: arv i Java

för att ärva en klass som vi använder utökar nyckelord. Här är klass A barnklass och klass B är moderklass.

class A extends B{}

Arvsexempel

i det här exemplet har vi en överordnad klassTeacher och en underordnad klassMathTeacher., I klassenMathTeacher behöver vi inte skriva samma kod som redan finns i den aktuella klassen. Här har vi college namn, beteckning och gör () metod som är vanligt för alla lärare, alltså MathTeacher klass behöver inte skriva denna kod, de gemensamma datamedlemmar och metoder kan ärvas från Teacher klass.,

Output:

BeginnersbookTeacherMathsTeaching

Obs: multi-level arv är tillåtet i Java men inte flera arv

typer av arv:
enda arv: avser ett barn-och moderklassförhållande där en klass utökar en annan klass.

multilevel arv: avser ett barn-och moderklassförhållande där en klass utökar barnklassen. Till exempel sträcker klass A klass B och klass B klass C.,

hierarkiskt arv: avser ett förhållande mellan barn och moderklass där fler än en klass utökar samma klass. Till exempel utökar klass B klass A och klass C klass A.

multipel arv: avser begreppet en klass som sträcker sig mer än en klass, vilket innebär att en barnklass har två moderklasser. Java stöder inte flera arv, Läs mer om det här.

de flesta av de nya OO-språken som Small Talk, Java, C# stöder inte flera arv. Flera arv stöds i C++.,

polymorfism

polymorfism är en objektorienterad programmeringsfunktion som tillåter oss att utföra en enda åtgärd på olika sätt. Låt oss till exempel säga att vi har en klass Animal som har en metod animalSound(), här kan vi inte ge implementering till den här metoden eftersom vi inte vet vilken djurklass som skulle förlänga Animal – klassen., Så vi gör denna metod abstrakt så här:

public abstract class Animal{ ... public abstract void animalSound();}

anta nu att vi har två djurklasser Dog och Lion som sträcker sig Animal klass. Vi kan ge genomförandedetaljerna där.

public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}

och

public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}

som du kan se att även om vi hade den gemensamma åtgärden för alla underklasser animalSound() men det fanns olika sätt att göra samma åtgärd., Detta är ett perfekt exempel på polymorfism (funktion som tillåter oss att utföra en enda åtgärd på olika sätt).

typer av polymorfism
1) statisk polymorfism
2) dynamisk polymorfism

statisk polymorfism:

polymorfism som löses under kompilatortiden kallas statisk polymorfism. Metod överbelastning kan betraktas som statisk polymorfism exempel.
metod överbelastning: detta gör det möjligt för oss att ha mer än en metoder med samma namn i en klass som skiljer sig i signatur.,

utgång:

aa 10

När jag säger metod signatur Jag talar inte om returtyp av metoden, till exempel om två metoder har samma namn, samma parametrar och har olika returtyp, då detta är inte en giltig metod överbelastning exempel. Detta kommer att kasta kompilering fel.

dynamisk polymorfism

det är också känt som Dynamic Method Dispatch. Dynamisk polymorfism är en process där ett samtal till en åsidosatt metod löses vid körning snarare, det är därför det kallas runtime polymorfism.,

exempel

utgång:

Woof

eftersom både klasserna, barnklassen och moderklassen har samma metodanimalSound. Vilken av metoden kommer att kallas bestäms vid körning av JVM.

några fler övergripande exempel:

är-a& har-A relationer

en bil är-ett fordon och har-en licens då koden skulle se ut så här:

public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}

abstrakt klass och metoder i OOPs begrepp

abstrakt metod:
1) en metod som gör det möjligt att deklareras men inte definierad. Endast metod signatur inget organ.,
2) deklareras med hjälp av abstrakt nyckelord
3) Exempel:

abstract public void playInstrument();

5) Används för att sätta någon form av tvång på klassen som ärver klassen har abstrakta metoder. Klassen som ärver måste tillhandahålla genomförandet av alla abstrakta metoder för överordnad klass annars förklara underklassen som abstrakt.
6 )dessa kan inte vara abstrakta

  • konstruktörer
  • statiska metoder
  • privata metoder
  • metoder som förklaras ”slutliga”

abstrakt klass
en abstrakt klass beskriver metoderna men inte nödvändigtvis implementerar alla metoder.,

abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}

Obs 1: Det kan finnas vissa scenarier där det är svårt att implementera alla metoder i basklassen. I sådana scenarier kan man definiera basklassen som en abstrakt klass som innebär att denna basklass är en speciell typ av klass som inte är komplett på egen hand.

en klass härledd från den abstrakta basklassen måste implementera de metoder som inte implementeras(betyder att de är abstrakta) i den abstrakta klassen.

Obs 2: abstrakt klass kan inte instansieras vilket innebär att du inte kan skapa objektet av abstrakt klass., För att använda den här klassen måste du skapa en annan klass som utökar denna abstrakta klass ger genomförandet av abstrakta metoder, då kan du använda syftet med den barnklassen för att ringa icke-abstrakta moderklassmetoder samt implementerade metoder (de som var abstrakta i förälder men implementerade i barnklass).

Anmärkning 3: om ett barn inte implementerar alla abstrakta metoder för moderklass (den abstrakta klassen) måste barnklassen förklaras abstrakt.,

exempel på abstrakt klass och metoder

Här har vi ett abstrakt Klassdjur som har en abstrakt metod animalSound(), eftersom djurljudet skiljer sig från ett djur till ett annat, är det ingen mening att ge genomförandet av denna metod eftersom varje barnklass måste åsidosätta denna metod för att ge sina egna implementeringsdetaljer. Därför gjorde vi det abstrakt.
Nu måste varje djur ha ett ljud, genom att göra denna metod abstrakt gjorde vi det obligatoriskt för barnklassen att ge implementeringsdetaljer till denna metod. På så sätt ser vi till att varje djur har ett ljud.,

utgång:

Woof

gränssnitt i Java

ett gränssnitt är en ritning av en klass, som kan deklareras genom att använda gränssnittssordet. Gränssnitt kan innehålla endast konstanter och abstrakta metoder (metoder med endast signaturer ingen kropp).Liksom abstrakta klasser kan Gränssnitt inte instansieras, de kan endast implementeras av klasser eller utökas med andra gränssnitt. Gränssnitt är ett vanligt sätt att uppnå full abstraktion i Java.,

Obs:

  1. Java stöder inte flera arv, men en klass kan implementera mer än ett gränssnitt
  2. gränssnittet liknar en abstrakt klass men den innehåller bara abstrakta metoder.,
  3. gränssnitt skapas genom att använda gränssnitt nyckelord istället för nyckelordet klass
  4. vi använderimplements nyckelord när du implementerar ett gränssnitt(liknar utvidga en klass med utökar sökord)

gränssnitt: Syntax

class ClassName extends Superclass implements Interface1, Interface2, ....

exempel på gränssnitt:

notera:

  1. alla metoder i ett gränssnitt är implicit offentliga och abstrakta. Använda sökordetabstract innan varje metod är valfri.
  2. ett gränssnitt kan innehålla slutliga variabler.,
  3. en klass kan utöka endast en annan klass, men den kan implementera valfritt antal gränssnitt.
  4. när en klass implementerar ett gränssnitt måste det ge definitionen av alla abstrakta metoder för gränssnitt, annars kan det deklareras som abstrakt klass
  5. en gränssnittsreferens kan peka på objekt i dess genomförandeklasser.

generalisering och specialisering:
för att genomföra begreppet arv i en OOPs måste man först identifiera likheterna mellan olika klasser för att komma fram till basklassen.,

denna process för att identifiera likheterna mellan olika klasser kallas generalisering. Generalisering är processen att extrahera delade egenskaper från två eller flera klasser och kombinera dem till en generaliserad superklass. Delade egenskaper kan vara attribut eller metoder.

i motsats till generalisering innebär specialisering att skapa nya underklasser från en befintlig klass. Om det visar sig att vissa attribut eller metoder endast gäller för några av objekten i klassen kan en underklass skapas.,

Åtkomstspecificerare

Du måste ha sett offentligt, privat sökord i de exempel Jag har delat ovan. De kallas åtkomstspecificerare eftersom de bestämmer omfattningen av en datamedlem, metod eller klass.

det finns fyra typer av åtkomstspecificerare i java:
Offentlig: tillgänglig för alla. Andra objekt kan också komma åt denna medlem variabel eller funktion.
privat: inte tillgänglig av andra objekt. Privata medlemmar kan endast nås med metoderna i samma klass. Objekt tillgängligt endast i klass där de deklareras.,
skyddad: omfattningen av en skyddad variabel ligger inom den klass som deklarerar den och i den klass som ärver från klassen (omfattning är klass och underklass).
standard: omfattning är paketnivå. Vi behöver inte uttryckligen nämna standard som när vi inte nämner någon åtkomstspecifikator anses det som standard.,

Vad lär vi oss i nästa handledning om OOPs-koncept

även om vi har täckt nästan alla OOPs-koncept här, men vad vi har lärt oss i den här guiden är i korthet, är dessa ämnen breda och det finns så mycket utrymme att lära sig dessa ämnen i detalj med hjälp av exempel. Det är därför jag har täckt varje ämne i detalj tillsammans med exempel och diagram i nästa handledning.
Hur kan du läsa nästa handledning på ett sekventiellt sätt? Det finns några sätt att göra det – 1) handledning länkar finns i den vänstra sidofältet, gå även om dem i den givna sekvensen.,
2) gå till huvudsidan java tutorial som har alla länkar till tutorials på sekventiellt sätt.
om du hittar några svårigheter att förstå dessa OOPs begrepp sedan släppa en kommentar nedan och jag kommer att komma tillbaka till dig så snart som möjligt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *