Introduction to Object Oriented Programming (OOP)


  Share  
|


De overgang van een procedurele programmeertaal (niet-OOP) taal om een object-georiënteerde programmeertaal is een grote stap voor veel programmeurs. Het is juist dat beide methoden van de programmering kan uiteindelijk hetzelfde doel te bereiken, maar vindt u OOP is netter en snellere manier te programmeren, is het beter geschikt is voor groepswerk, en programma's zijn meestal gemakkelijker te ontwerpen met behulp van de object-georiënteerde aanpak. Met OOP in Java, vindt u dat het programmeren een uitdaging om te beginnen, maar toch zeer eenvoudig en zeer de moeite waard als je eenmaal meester is.

Wat is een object?

Objecten zijn de bouwstenen die deel uitmaken van een programma. Het is moeilijk uit te leggen wat een object is, omdat een object kan worden wat je wilt. Zo kunt u een object dat is een vreemdeling dat alle informatie met betrekking tot de vreemdeling kan houden en bevatten ook de functionaliteit gekoppeld. U kunt gegevens, zoals het nummer van het leven van de vreemdeling en heeft ook de functionaliteit om de gegevens, zoals de code van invloed zijn op de vreemdeling, die zouden kunnen verwijderen van een van het leven te doden.

De essentiële elementen die deel uitmaken van een object zijn variabelen en methoden. Variabelen zijn gegevens leden, of attributen, dat gegevens met betrekking tot het object, zoals een tekenreeks of een numerieke waarde bevatten. Methoden bieden de functionaliteit van het object en kan worden gebruikt voor interactie met de attributen. Methoden zijn ook bekend als functies of procedures in diverse andere programmeertalen.

Object-Oriented Programming in Java
De Java-taal is volledig object georiënteerd. Dit betekent dat er geen algemene uitspraken dan ook (hoewel statische leden kunnen worden opgevat als zijnde enigszins global-statische leden we later zullen bespreken). Alle attributen of methoden moeten worden gedefinieerd als onderdeel van een klasse of interface.

Een klasse in Java wordt gebruikt om de structuur van een object. Een klasse kan worden onderverdeeld in drie delen: constructeurs, attributen (eigenschappen), en methoden.

Laten we nu kijken naar een voorbeeld van een zeer eenvoudige klasse structuur die deze drie delen voordat we verder gaan. Een voorbeeld van een klasse kan een persoon, die zou kunnen beschrijven de attributen en methoden die een persoon zou kunnen hebben met hen verbonden. Een object kan dan worden gemaakt van de persoon die klasse, net als u of ik, of zelfs uw partner (als u niet beschikt over een partner, dan goed gedaan, je bent een echte programmeur).

Voor het maken van een object, moeten we eerst een klasse. Maak je geen zorgen over het compileren van een van de code nu hoeft alleen maar achterover leunen, pak een kop koffie, en probeer een aantal basisprincipes te begrijpen.

Hier is het begin van onze "Persoon" klasse:

class Person ()

Nu, op dit moment hebben we de contouren code voor een persoon klasse. Eerst moeten we een aantal attributen toevoegen. Laten we voegen een numeriek attribuut tot de klasse tot de leeftijd van een persoon op te slaan.

class Person (int leeftijd;)

Het sleutelwoord int staat voor integer, wat neerkomt op een numerieke gegevens type. Op dit punt, de Persoon klasse is alle attributen en geen functionaliteit (duidelijk wordt gewezen op een carrière in de politiek). Wij kunnen u een methode om de klasse als volgt, die kan worden gebruikt om de waarde in leeftijd veranderen:

class Person (public void setAge (int New Age) (/ / set de leeftijd op de waarde opgeslagen in New Age New Age = leeftijd;) int leeftijd;)

Nu hebben we een klasse met de naam Person, die een methode genaamd setAge en een attribuut leeftijd. De methode setAge kan worden gebruikt om een nieuwe waarde toe te kennen aan de leeftijd van de persoon. Nogmaals, maak je geen zorgen te veel over hoe methoden werken voor het moment, je koffie moet gewoon koel genoeg zijn om over nu drinken.

Voor het maken van een object (of een instantie, zoals het ook wordt genoemd) van de klasse Persoon, moet een constructeur worden ingeroepen. Alle lessen bevatten een standaard constructor, die niets doet en kan worden overladen met vele bouwer soorten, zoals we zullen zien.

Constructors

De constructor is een methode die wordt aangeroepen wanneer het object wordt gemaakt en gebruikt om de toestand van het object te initialiseren. De aannemer moet worden verklaard met dezelfde naam als de klasse waarin zij is opgenomen en kan niet een terugkeer waarde hebben. We zullen nu voeg twee constructeurs om de persoon klasse:

class Person (public Person () (/ / basic bouwer leeftijd is ingesteld op 0 standaard) public Persoon (int New Age) (/ / contructor dat de leeftijd wordt tot een bepaalde waarde setAge (New Age);) public void setAge (int New Age ) (/ / set de leeftijd op de waarde opgeslagen in New Age New Age = leeftijd;) int leeftijd;)

U kunt verklaren een verwijzing naar een Person object als volgt:

Persoon billyGate;
Op dit moment heb je een verwijzing naar een object van het type persoon, die op dit moment geen referentie elk object. De leden van het object kan niet worden geopend, zoals het kenmerk leeftijd, omdat er geen bezwaar is gemaakt. Merk op dat de referentie-variabele billyGate eigenlijk gelijk is aan nul op dit punt.

Een oproep tot een constructor moet worden gesteld om een nieuw object van het type creëren Persoon, het toewijzen van de variabele billyGate verwezen naar de nieuw object.

Als er geen constructeurs worden aangegeven voor een klas, een standaard constructor beschikbaar is die geen parameters neemt en alleen maar zorgt voor een standaard object van de klasse bij ingeroepen. In onze codefragment wij hebben onze eigen standaard constructor die is opgericht (), die geen code bevat, en een tweede constructeur ook wel Persoon (int New Age), die code bevat dat de waarde leeftijd in de Persoon doel stelt om een nieuwe tijd aangegeven door een parameter waarde.

Opmerking Hadden we alleen verklaard de tweede constructeur en verzuimd de eerste constructeur, zou er niet langer een standaard constructor beschikbaar die geen parameters duurt, als de standaard constructor bestaat alleen als de klasse bevat geen door de gebruiker gedefinieerde constructeurs.

Als u een object uit de klasse Persoon, kunnen we gebruik maken van de volgende regel code:

/ / Gebruik seconden constructeur, stelt leeftijd waarde tot en met 21 billyGate Persoon = new Persoon (21);

Deze regel code verklaart een identificatiecode genaamd billyGate van het type persoon en zorgt voor een "nieuwe" Person object met behulp van de tweede constructeur in de klasse Persoon te initialiseren het object, de vaststelling van de leeftijd van waarde in de nieuwe Persoon object tot 21.

We kunnen ook gebruik maken van de volgende code in plaats daarvan, deze keer met de eerste (standaard) constructor initialiseren het object en stel de waarde van leeftijd setAge met behulp van de methode, die lid is van de nieuw gevormde zaak.

/ / Gebruik eerste constructor billyGate Persoon = new Persoon (); / / gebruik setAge lid van de leeftijd tot en met 21 billyGate.setAge (21); / / de waarde van de leeftijd tot en met 21

We kunnen ook toegang tot de variabele leeftijd en stel de waarde direct, als volgt:

billyGate.age = 21;

Opmerking U kunt geen twee constructeurs met dezelfde handtekening.

Tot dusver hebben we gezien instantiatie, dat is de term gebruikt om de creatie van een object of instantie van een klasse. Het volgende diagram zal hopelijk helpen begrijpen dit een beetje beter, omdat het de relatie tussen de persoon klasse en objecten gemaakt van het toont.

Een object lid is een lid dat wordt gemaakt wanneer het object is gemaakt. Dit betekent dat het kan alleen worden geopend wanneer het object is gemaakt omdat het anders niet bestaat. Het voorbeeld dat we zojuist hebben gezien maakt een instantie van de klasse Persoon verwezen door billyGate. We konden hebben ook veel meer gevallen van de Person klasse. Stel dat we gezegd dat de billyGate doel was de enige persoon die we ooit zou moeten of willen maken, dan kunnen we de Persoon klasse kon helemaal af te schaffen en gewoon maak een nieuwe klasse met de naam BillyGate plaats.

klasse BillyGate (public static void setAge (int New Age) (/ / set de leeftijd op de waarde opgeslagen in New Age New Age = leeftijd;) static int leeftijd;)

Merk op dat we hebben de constructeurs verwijderd en toegevoegd het sleutelwoord static om de twee gedefinieerde leden. Dit is omdat we niet langer behoefte aan een instantie van deze klasse te creëren. We kunnen alleen maar toegang krijgen tot de statische leden met behulp van de klasse naam. Bijvoorbeeld

BillyGate.setAge (21);

Deze statische leden zijn bekend als klasse-leden, terwijl voordat we hadden object leden.

De voorbeelden die we gebruikt hebben tot dusver slechts bevatten ofwel object leden of klasse leden, u kunt natuurlijk gebruik maken van beide. Laten we terugkeren naar onze Persoon klasse nu en voeg een statisch attribuut. De statische attribuut moet iets zijn dat zal worden dezelfde voor alle Persoon objecten die we creëren. Dus we een integer variabele kunnen toevoegen genaamd daysInAYear.

class Person (/ / code als voor static int daysInAYear;)

We kunnen toegang krijgen tot de attribuut daysInAYear voordat we voorwerpen uit de Persoon klasse te creëren. Bijvoorbeeld

Person.daysInAYear = 365;

Als we het creëren van nieuwe gevallen van Persoon, dan kunnen ook zij de statische variabele daysInAYear toegang.

Persoon glennMurphy = new Persoon (21); Persoon andrewMulholland = new Persoon (20); glennMurphy.daysInAYear = 366; / / het is een schrikkeljaar System.out.println (andrewMullholland.daysInAYear);

Deze code zal automatisch twee nieuwe gevallen van Persoon, verwezen door glennMurphy en andrewMulholland. De glennMurphy object wordt dan de statische variabele daysInAYear tot en met 366, en de andrewMulholland object zal toegang daysInAYear, drukken de waarde ervan op de console venster. Het aantal dat zal worden afgedrukt op de console venster is 366, wat betekent dat daysInAYear niet behoort tot een van de objecten alleen, zij behoort tot hen allen, en de veranderingen gemaakt van een invloed op de andere. Er is slechts een deel van het geheugen met de waarde 366 waarop zij alle betrekking hebben. Kortom, het is dezelfde eigenschap maar het is benaderd.

Referenties

Om toegang te krijgen voorwerpen (onthoud ze zijn instanties van klassen) op Java, maken we gebruik van wat bekend staat als referenties. We hebben drie referenties tot nu toe in onze code voorbeelden: billyGate, glennMurphy en andrewMulholland. Dit waren niet de werkelijke objecten die we gemaakt, maar alleen verwijzingen (ook bekend als handvatten) aan de objecten gemaakt. Neem de volgende code, bijvoorbeeld:

andrewMulholland = glennMurphy; / / hij nooit mijn gelijk

Deze code maakt gewoon andrewMulholland verwijzing hetzelfde object dat glennMurphy referenties; dus kon je dan toegang tot hetzelfde object met een van de twee referenties.

Het object met de leeftijd gelijk is aan 20 dat, zodra andrewMulholland verwezen is nu verloren, maar maak je geen zorgen over het vrijmaken van het geheugen, dit is opgevangen door Java's garbage collector.

een artikel ingediend door Gabriela Perez C.


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions