Zoeken op website

Objectgeoriënteerde benadering van Java-programmering en -inkapseling - Deel 5


Sinds het begin van deze serie (en zelfs daarvoor) wist je dat Java een objectgeoriënteerde programmeertaal is. De objectgeoriënteerde programmeertaal is gebaseerd op het concept van “objecten”, dat gegevens als attributen in methoden bevat.

Elk object in Java heeft een status en gedrag die worden weergegeven door instantievariabelen en -methoden. Elke instantie van een klasse kan een unieke waarde hebben voor de instantievariabele ervan.

Bijvoorbeeld,

Machine A kan zijn opgestart met Debian en 8 GB RAM hebben, terwijl Machine B Gentoo kan hebben geïnstalleerd met 4 GB RAM. Het is ook duidelijk dat het beheren van machines waarop Gentoo is geïnstalleerd meer kennis vereist – een gedrag dat inwerkt op de staat ervan. Hier gebruikt de methode de waarden van instantievariabelen.

De JVM maakt bij het parseren van een klasse een dergelijk object. Wanneer je een klasse schrijft, gedraag je je feitelijk als een compiler die je klasse vertelt wat het object moet weten en hoe het moet handelen. Elk object van een bepaald type kan een andere waarde hebben voor dezelfde instantievariabele.

Elke instance van een klasse heeft dezelfde methode, maar het is mogelijk dat ze zich allemaal anders gedragen.

De OS-klasse heeft drie instantievariabelen, namelijk OS-naam, OS-type en OS-categorie.

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

De methode Boot() start één besturingssysteem op, dat wordt weergegeven door de OS-naam voor die instantie. Dus als u op één instantie boot() opstart, zult u in Debian opstarten, terwijl u op een andere instantie in Gentoo zult opstarten. De methodecode blijft in beide gevallen hetzelfde.

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

U weet al dat het programma net na de main() methode begint met uitvoeren. U kunt waarden doorgeven aan uw methode.

U wilt uw besturingssysteem bijvoorbeeld vertellen welke services u bij het opstarten moet starten:

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

Wat u in methoden doorgeeft, worden argumenten genoemd. U kunt een variabele met een type en een naam binnen een methode gebruiken. Het is belangrijk om waarden met parameter door te geven als een methode een parameter nodig heeft.

OS deb = debian();
deb.reboot(600);

Hier geeft de herstartmethode op het besturingssysteem de waarde 600 (machine opnieuw opstarten na 600 seconden) door als argument voor de methode. Tot nu toe hebben we gezien dat de methode altijd ongeldig terugkeert, wat betekent dat het je niets oplevert, simpelweg als:

void main()
	{
	…
	…
	}

U kunt uw compiler echter vragen om precies te krijgen wat u wenst, en uw compiler zal u geen verkeerde typen retourneren. Je kunt eenvoudigweg het volgende doen:

int Integer()
	{
	…
	…
	return 70;
	}

U kunt meer dan één waardewaarde naar een methode verzenden. U kunt dit doen door twee parametermethoden aan te roepen en deze naar argumenten te sturen. Let op: het variabeletype en het parametertype moeten altijd overeenkomen.

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
Instantievariabelen declareren en initialiseren

1. Als u niet weet welke waarde u moet initialiseren.

int a;
float b;
string c;

2. Wanneer ze de waarde kennen die moet worden geïnitialiseerd.

int a = 12;
float b = 11.23;
string c = tecmint;

Opmerking: variabelen van een instantie worden vaak verward met lokale variabelen, maar er is een zeer dunne lijn ertussen om onderscheid te maken.

3. Instantievariabelen worden binnen een klasse gedeclareerd, in tegenstelling tot lokale variabelen die binnen een methode worden gedeclareerd.

4. In tegenstelling tot instantievariabelen moeten lokale variabelen worden geïnitialiseerd voordat ze kunnen worden gebruikt. De compiler rapporteert een fout als u een lokale variabele gebruikt voordat deze is geïnitialiseerd.

Inkapseling

Je hebt misschien wel eens gehoord van inkapseling. Het is een kenmerk van de meeste objectgeoriënteerde programmeertalen die het mogelijk maakt gegevens en functies in één component te binden. Inkapseling wordt ondersteund door de klasse en beschermt codes tegen onbedoelde schade door een muur rond objecten te creëren en hun eigenschappen en methoden selectief te verbergen.

We zullen de inkapseling in details uitleggen in de juiste tutorial wanneer dit nodig is. Vanaf nu is het voldoende dat u weet wat inkapseling is? Wat het doet? En hoe werkt het?

Dat is het voor nu. Blijf verbonden voor het volgende deel van deze Java-serie “klasse en objecten in Java en maak je eerste object in Java ” terwijl ik eraan werk. Als je de serie en het bericht leuk vindt, laat het ons dan weten in de feedback.