objektorienteret programmeringssystem(OOPs) er et programmeringsparadigme baseret på begrebet “objekter”, der indeholder data og metoder. Det primære formål med objektorienteret programmering er at øge fleksibiliteten og vedligeholdelsen af programmer. Objektorienteret programmering samler data og dets adfærd (metoder) på et enkelt sted(objekt) gør det lettere at forstå, hvordan et program fungerer. Vi vil dække hver eneste funktion af OOPs i detaljer, så du ikke vil stå over for nogen difficultly forståelse OOPs begreber.,
Ups Begreber – Indholdsfortegnelse
- Hvad er et Objekt
- Hvad er en klasse
- Konstruktør i Java
- Objekt Orienteret Programmering Funktioner
- Abstraktion
- Indkapsling
- Arv
- Polymorfi
- Abstrakt Klasse, og Metoder
- Grænseflader i Java
Hvad er et Objekt
Objekt: er en samling af data, og dens adfærd(ofte kaldet metoder).
objekter har to egenskaber: de har tilstande og adfærd.,eksempel 1:
objekt: hus
stat: adresse, Farve, område
adfærd: åben dør, Luk dør
så hvis jeg skulle skrive en klasse baseret på tilstande og adfærd i huset. Jeg kan gøre det sådan: stater kan repræsenteres som instansvariabler og adfærd som metoder til klassen. Vi vil se, hvordan du opretter klasser i næste afsnit af denne vejledning.
class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}
Bemærk: Som vi har set ovenfor, kan et objekts tilstande og adfærd repræsenteres ved variabler og metoder i klassen.,
egenskaber ved objekter:
Hvis du har svært ved at forstå abstraktion og indkapsling, skal du ikke bekymre dig, da jeg har dækket disse emner detaljeret med eksempler i næste afsnit af denne vejledning.
- abstraktion
- indkapsling
- meddelelse passerer
abstraktion: abstraktion er en proces, hvor du kun viser “relevante” data og “skjuler” unødvendige detaljer om et objekt fra brugeren.indkapsling: indkapsling betyder simpelthen bindende objekttilstand(felter) og adfærd (metoder) sammen. Hvis du opretter klasse, laver du indkapsling.,
meddelelse passerer
et enkelt objekt i sig selv kan ikke være meget nyttigt. En applikation indeholder mange objekter. Et objekt interagerer med et andet objekt ved at påberåbe metoder på dette objekt. Det kaldes også Metode påkaldelse. Se diagrammet nedenfor.
Hvad er en Klasse i Ups Begreber
En klasse kan betragtes som en model, ved hjælp af hvilken du kan oprette så mange objekter, som du kan lide. For eksempel har vi her en klasse Website
, der har to datamedlemmer (også kendt som felter, instansvariabler og objekttilstande)., Dette er bare en plan, det repræsenterer ikke noget websiteebsted, men ved hjælp af dette kan vi oprette Websiteebstedsobjekter (eller forekomster), der repræsenterer websebstederne. Vi har oprettet to objekter, mens vi skabte objekter, leverede vi separate egenskaber til objekterne ved hjælp af konstruktør.
Output:
beginnersbook 5google 18
Hvad er en konstruktør
konstruktør ligner en metode, men det er faktisk ikke en metode. Det navn er det samme som klasse navn, og det returnerer ikke nogen værdi., Du skal have set denne erklæring i næsten alle de programmer, jeg har delt ovenfor:
MyClass obj = new MyClass();
Hvis du ser på den rigtige side af denne erklæring, vi kalder den default constructor for klassen myClass
for at oprette et nyt objekt (eller instans).
Vi kan også have parametre i konstruktøren, sådanne konstruktører er kendt som parametrizeded konstruktører.,
Eksempel i constructor
Output:
Chaitanya 30Steve 56
Objekt Orienteret Programmering funktioner
Disse fire funktioner er de vigtigste OOPs Begreber, som du skal lære at forstå Objekt Orienteret Programmering i Java
Abstraktion
Abstraktion er en proces, hvor du viser kun er “relevante” data og “skjule” unødvendige detaljer af et objekt fra brugeren., For eksempel, når du logger ind på din bankkonto online, indtaster du din user_id og adgangskode og trykker på login, Hvad sker der, når du trykker på login, hvordan inputdataene, der sendes til serveren, hvordan de bliver verificeret, abstraheres væk fra dig. Læs mere om det her: abstraktion i Java.
indkapsling
indkapsling betyder simpelthen bindende objekttilstand(felter) og adfærd(metoder) sammen. Hvis du opretter klasse, laver du indkapsling.,
Indkapslingseksempel i Java
sådan
1) Gør instansvariablerne private, så de ikke kan tilgås direkte uden for klassen. Du kan kun indstille og få værdier af disse variabler gennem klassens metoder.2) har getter og setter metoder i klassen for at indstille og få værdierne for felterne.
Output:
No Of Employees: 5613
klassenEncapsulationExample
det bruger objektet til klasseEmployeeCount
kan ikke få Noofmedarbejderne direkte., Det skal bruge setter og getter metoder af samme klasse til at indstille og få værdien.
Så hvad er fordelen ved indkapsling i java programmering
Nå, på et eller andet tidspunkt, hvis du ønsker at ændre nærmere oplysninger om gennemførelsen af klassen EmployeeCount, kan du frit gøre det uden at påvirke de klasser, der bruger det.
arv
den proces, hvormed en klasse erhverver egenskaber og funktionaliteter i en anden klasse kaldes arv., Arv giver ideen om genanvendelighed af kode, og hver underklasse definerer kun de funktioner, der er unikke for den, resten af funktionerne kan arves fra forældreklassen.
- arv er en proces med at definere en ny klasse baseret på en eksisterende klasse ved at udvide sine fælles data medlemmer og metoder.
- arv giver os mulighed for at genbruge kode, det forbedrer genanvendeligheden i din java-applikation.
- forældreklassen kaldes baseklassen eller superklassen. Barneklassen, der udvider baseklassen, kaldes den afledte klasse eller underklasse eller børneklasse.,bemærk: den største fordel ved arv er, at koden i basisklassen ikke behøver at blive omskrevet i børneklassen.
variablerne og metoderne i basisklassen kan også bruges i børneklassen.
syntaks: arv i Java
for at arve en klasse bruger vi udvider søgeord. Her er klasse A børneklasse, og klasse B er forældreklasse.
class A extends B{}
Arv Eksempel
I dette eksempel, har vi en overordnet klasse
Teacher
og et barn klasseMathTeacher
., IMathTeacher
klassen behøver vi ikke at skrive den samme kode, som allerede er til stede i den nuværende klasse. Her har vi college navn, betegnelse og betyder() metode, der er fælles for alle lærere, således MathTeacher klasse ikke behøver at skrive denne kode, de fælles data og metoder kan arvet fraTeacher
class.,Output:
BeginnersbookTeacherMathsTeaching
Bemærk: Multi-level arv er tilladt i Java, men ikke flere arv
Typer af Arv:
Single Arv: refererer til et barn og forælder klasse-relation, hvor en klasse udvider den anden klasse.arv på flere niveauer: henviser til et forhold mellem børn og forældre, hvor en klasse udvider barneklassen. For eksempel klasse A udvider klasse B og klasse B udvider klasse C.,hierarkisk arv: henviser til et barn-og forældreklasseforhold, hvor mere end en klasse udvider den samme klasse. For eksempel udvider klasse B klasse A og klasse C udvider klasse A.
Multiple arv: henviser til begrebet en klasse, der strækker sig mere end en klasse, hvilket betyder, at en børneklasse har to forældreklasser. Java understøtter ikke flere arv, Læs mere om det her.
de Fleste af de nye OO sprog som Small Talk, Java, C# ikke understøtter Multipel nedarvning. Flere arv understøttes i C++.,
polymorfisme
polymorfisme er en objektorienteret programmeringsfunktion, der giver os mulighed for at udføre en enkelt handling på forskellige måder. For eksempel, lad os sige, at vi har en klasse
Animal
, der har en metodeanimalSound()
, her kan vi ikke give gennemførelsen af denne metode, da vi ikke ved, hvilket Dyr klasse ville udvideAnimal
class., Så, vi gør denne metode abstrakt som dette:public abstract class Animal{ ... public abstract void animalSound();}
lad os Nu antage, at vi har to Dyr klasser
Dog
ogLion
, der strækker sigAnimal
class. Vi kan give implementeringsdetaljerne der.public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}
og
public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}
Som du kan se, at selv om vi havde fælles handling for alle underklasser
animalSound()
men der var forskellige måder at gøre den samme handling., Dette er et perfekt eksempel på polymorfisme (funktion, der giver os mulighed for at udføre en enkelt handling på forskellige måder).typer af polymorfisme
1) statisk polymorfisme
2) dynamisk polymorfismestatisk polymorfisme:
polymorfisme, der løses under kompileringstiden, kaldes statisk polymorfisme. Metode overbelastning kan betragtes som statisk polymorfisme eksempel.
metode overbelastning: dette giver os mulighed for at have mere end methodsn metoder med samme navn i en klasse, der adskiller sig i signatur.,Output:
aa 10
Når jeg siger metode underskrift jeg taler ikke om at vende tilbage type af metode, for eksempel hvis to metoder har samme navn, samme parametre, og at de har forskellige afkast type, så er dette ikke en brugbar metode overbelastning eksempel. Dette vil kaste kompilering fejl.
dynamisk polymorfisme
det er også kendt som Dynamic Method Dispatch. Dynamisk polymorfisme er en proces, hvor et opkald til en tilsidesat metode er løst ved runtime snarere, thats hvorfor det kaldes runtime polymorfisme.,
Eksempel
Output:
Woof
Da begge de klasser, barn klasse og forældre-klasse har den samme metode
animalSound
. Hvilken af metoden vil blive kaldt bestemmes ved runtime af JVM.Få mere væsentlige eksempler:
, ER-& HAR-EN-Relationer
En Bil ER ET Køretøj, og HAR EN Licens, så koden vil se ud som dette:
public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}
en Abstrakt Klasse, og metoder i Ups Begreber
Abstrakt metode:
1) En metode, der er angivet, men ikke defineret. Eneste metode signatur ingen krop.,
2) erklæret ved hjælp af det abstrakte nøgleord
3) eksempel:abstract public void playInstrument();
5) bruges til at lægge en slags tvang på klassen, der arver klassen, har abstrakte metoder. Klassen, der arver, skal give implementeringen af alle de abstrakte metoder til forældreklasse, der ellers erklærer underklassen som abstrakt.
6) Disse kan ikke være abstrakt- Konstruktører
- Statiske metoder
- Privat metoder
- Metoder, der er erklæret “afsluttende”
Abstrakt Klasse
En abstrakt klasse beskriver de metoder, men ikke nødvendigvis implementerer alle metoder.,abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}
Note 1: der kan være nogle scenarier, hvor det er vanskeligt at implementere alle metoderne i basisklassen. I sådanne scenarier kan man definere basisklassen som en abstrakt klasse, der betyder, at denne basisklasse er en speciel slags klasse, som ikke er fuldstændig alene.
en klasse afledt af den abstrakte baseklasse skal implementere de metoder, der ikke er implementeret(betyder, at de er abstrakte) i den abstrakte klasse.Note 2: abstrakt klasse kan ikke instantieres, hvilket betyder, at du ikke kan oprette genstanden for abstrakt klasse., For at bruge denne klasse, skal du oprette en anden klasse, som udvider denne abstrakte klasse giver gennemførelsen af abstrakte metoder, så du kan bruge genstanden for, at barnet klassen til at kalde ikke-abstrakte forælder klasse-metoder samt gennemført metoder(dem, der var abstrakt i forælder, men er implementeret i barnets klasse).
Note 3: Hvis et barn ikke implementerer alle de abstrakte metoder i forældreklassen(den abstrakte klasse), skal barneklassen erklæres abstrakt.,
Eksempel på en Abstrakt klasse, og Metoder
Her har vi en abstrakt klasse Dyr, der ikke har en abstrakt metode animalSound(), da dyret lyd adskiller sig fra et dyr til et andet, der er ingen mening i at give den gennemførelsen af denne metode, da hvert barn klasse skal tilsidesætte denne metode til at give sin egen gennemførelse detaljer. Derfor gjorde vi det abstrakt.
nu skal hvert dyr have en lyd, ved at gøre denne metode abstrakt gjorde vi det obligatorisk for børneklassen at give implementeringsdetaljer til denne metode. På denne måde sikrer vi, at hvert dyr har en lyd.,Output:
Woof
grænseflader i Java
en grænseflade er en plan for en klasse, som kan erklæres ved hjælp af grænsefladesøgeord. Grænseflader kan kun indeholde konstanter og abstrakte metoder (metoder med kun underskrifter ingen krop).Ligesom abstrakte klasser kan grænseflader ikke instantieres, de kan kun implementeres af klasser eller udvides af andre grænseflader. Interface er en almindelig måde at opnå fuld abstraktion i Java.,
Bemærk:
- Java understøtter ikke flere Arv, men en klasse kan implementere mere end en grænseflade
- Interface ligner en abstrakt klasse, men den indeholder kun abstrakte metoder.,
- Grænseflader, der er oprettet ved hjælp af interface søgeord i stedet for søgeord klasse
- Vi bruger
implements
søgeord, mens de gennemfører en grænseflade(svarende til forlængelse af en klasse med søgeord udvider)
Grænseflade: Syntaks
class ClassName extends Superclass implements Interface1, Interface2, ....
Eksempel Interface:
Bemærk:
- Alle metoder i et interface, der er implicit offentlige og abstrakt. Brug af nøgleordet
abstract
før hver metode er valgfri. - en grænseflade kan indeholde endelige variabler.,
- en klasse kan kun udvide en anden klasse, men den kan implementere et hvilket som helst antal grænseflader.
- når en klasse implementerer en grænseflade, skal den angive definitionen af alle de abstrakte grænseflademetoder, ellers kan den erklæres som abstrakt klasse
- en grænsefladehenvisning kan pege på objekter i dens implementeringsklasser.
generalisering og specialisering:
for at implementere begrebet arv i en UPS skal man først Identificere lighederne mellem forskellige klasser for at komme med basisklassen.,denne proces med at Identificere lighederne mellem forskellige klasser kaldes generalisering. Generalisering er processen med at udtrække delte karakteristika fra to eller flere klasser og kombinere dem i en generaliseret superklasse. Delte karakteristika kan være attributter eller metoder.
i modsætning til generalisering betyder specialisering at oprette nye underklasser fra en eksisterende klasse. Hvis det viser sig, at visse attributter eller metoder kun gælder for nogle af klassens objekter, kan der oprettes en underklasse.,
Adgangsspecifikationer
Nå, du skal have set offentlige, private nøgleord i eksemplerne, jeg har delt ovenfor. De kaldes adgangsspecifikatorer, da de bestemmer omfanget af et datamedlem, metode eller klasse.
Der er fire typer adgangsspecifikationer i java:
offentlig: tilgængelig for alle. Andre objekter kan også få adgang til denne medlemsvariabel eller-funktion.
privat: ikke tilgængelig for andre objekter. Private medlemmer kan kun fås ved hjælp af metoderne i samme klasse. Objekt kun tilgængelig i klasse, hvor de er erklæret.,
beskyttet: omfanget af en beskyttet variabel er inden for den klasse, der erklærer det, og i den klasse, der arver fra klassen (omfanget er klasse og underklasse).
standard: omfanget er Pakkeniveau. Vi behøver ikke udtrykkeligt at nævne standard, da når vi ikke nævner nogen adgangsspecifikator, betragtes det som standard.,Hvad lærer vi i de næste tutorials om ups-koncepter
selvom vi har dækket næsten alle ups-koncepter her, men uanset hvad vi har lært i denne vejledning, er disse emner brede, og der er så meget plads til at lære disse emner i detaljer ved hjælp af eksempler. Thats hvorfor jeg har dækket hvert eneste emne i detaljer sammen med eksempler og diagrammer i de næste tutorials.
Hvordan kan du læse de næste tutorials på en sekventiel måde? Der er nogle måder at gøre det på – 1) Tutorial links findes i venstre sidepanel, gå selv om dem i den givne rækkefølge.,2) Gå til den vigtigste java-tutorialside, der har alle links til tutorials på sekventiel måde.
Hvis du finder problemer med at forstå disse ups-koncepter, så slip en kommentar nedenfor, så vender jeg tilbage til dig så hurtigt som muligt.