‫Welkom terug.
‫In deze video wil ik je eigenschappen laten zien en je leren hoe eigenschappen werken en omdat één video te lang zou
‫zijn en ik in het verleden een video heb gemaakt over eigenschappen en het was een beetje te verwarrend als
‫het leek.
‫Ik besloot het af te breken en opnieuw op te nemen omdat het gewoon niet goed genoeg was, zo lijkt het.
‫Dus als je een andere video vindt die totaal verwarrend is en je helemaal niet helpt, laat het me dan
‫alsjeblieft weten, want ik wil dat deze cursus de beste cursus is die er is.
‫Oke.
‫Dus wat we moeten doen, is allereerst een nieuwe klasse maken.
‫Dus laten we naar het project gaan en een nieuwe klasse toevoegen, want ik wil je de grondbeginselen van eigenschappen
‫leren, omdat ze een belangrijk aspect of een belangrijk concept zijn dat we veel gaan gebruiken.
‫Daarom is het zo belangrijk dat je de hele breedte ervan begrijpt.
‫OK, dus we beginnen met het maken van een nieuwe klas en ik ga deze klasdoos noemen.
‫Oke.
‫Dus wees gewoon een heel eenvoudige klas.
‫Dus deze box-klasse wordt gewoon een klasse met een bepaald aantal variabelen.
‫Oke.
‫Dus ik wil bijvoorbeeld alleen het volume van de doos berekenen op basis van de lengte, de hoogte en de grootte
‫ervan.
‫Oké, dus laten we die variabelen maken en ik ga ze voorlopig openbaar maken.
‫Oke.
‫Ik ga de ene openbare lengte maken en dan de andere.
‫En deze is de hoogte en dan hebben we de breedte nodig.
‫En tot slot wil ik ook het volume hebben, zodat het volume het eindresultaat van deze box zal zijn.
‫Oke.
‫Dus nu heb ik een heleboel variabelen.
‫Nu zijn die variabelen geen eenvoudige variabelen.
‫Het zijn in feite lidvariabelen, wat betekent dat ze de variabelen zijn op het niveau van de klasse
‫in dit geval van de klassenbox.
‫Ze hebben dus een directe impact op het hele uiterlijk van de doos of de hele structuur van een doos, om zo te
‫zeggen.
‫Oke.
‫En we gaan zien hoe we lidvariabelen op een andere manier of zelfs een andere structuur kunnen gebruiken, wat nog
‫veiliger is, omdat het probleem hierbij is dat ze openbaar zijn, dus niet veilig.
‫We zullen zien hoe we dit kunnen oplossen.
‫Laten we dus eerst maar eens doorgaan en hier een nieuwe methode maken.
‫En ik ga dit gewoon display-info noemen, omdat het idee erachter is dat het alleen de
‫lengte en de hoogte weergeeft, en dan zal het het volume berekenen en ons vertellen hoe groot het volume is.
‫Oke.
‫Ik ga gewoon een korte rechtse verklaring schrijven.
‫Dus ik voer een dubbele tik in, waardoor deze console-rechterregel hier voor mij wordt gemaakt.
‫En hier ga ik gewoon zeggen dat lengte de eerste invoer en hoogte zal zijn.
‫Het wordt de tweede inzending.
‫Dus ik zal het zo gebruiken.
‫En daarmee is die derde vermelding.
‫Dus het volume is en dan heb ik het vierde item.
‫Oke.
‫Dus dit is mijn hele ritlijnverklaring.
‫En dan de variabelen die ik wil gebruiken lengte hoogte.
‫Met.
‫En volume nu volume is iets dat ik moet berekenen op basis van lengte, hoogte en breedte.
‫Dus dat ga ik gewoon doen.
‫Ik ga gewoon zeggen dat het volume de lengte is vermenigvuldigd met de hoogte vermenigvuldigd met de breedte.
‫Als u dit doet, wordt dit volume gemaakt of wordt het volume berekend, omdat het volume het resultaat is van deze berekening
‫hier, verleng zijtijden waar het het volume zal zijn.
‫Oke.
‫Dus laat me het nu opsplitsen in twee regels, zodat het een beetje leesbaarder is.
‫Oke.
‫Dus nu hebben we deze methode, dit vlak voor nu.
‫Laten we doorgaan en dit bestand opslaan en naar ons programma gaan.
‫Ja.
‫Hier gaan we deze klasse gebruiken.
‫We gaan een object van deze klasse maken.
‫Hoe maken we objecten?
‫We zullen.
‫Dus ik maak er een nieuw object van, ik ga dit een doos noemen en het wordt een nieuwe doos.
‫Dus dit is hoe je een object van een klasse of een instantie van een klasse maakt.
‫Dus ik maak een instantie van deze klassendoos.
‫Dus zo'n beetje een variabele van type doos en dozen die we zelf hebben gemaakt.
‫Wat ik nu kan doen, is dat ik de waarden eraan
‫toewijs, zodat ik kan doorgaan en zeggen: OK, de lengte wordt drie, dan wordt de hoogte vier en de met vijf, iets zoals dat.
‫Natuurlijk heb ik hier ook een gelijkteken nodig om dit correct te laten zijn.
‫Wat ik nu kan doen, is dat ik gewoon door kan gaan en de telefooncel kan starten.
‫Deze speelinfo, dus dat is best cool.
‫Ik heb deze heldere lijnverklaring hier niet meer nodig.
‫Ik kan dit bestand nu opslaan en uitvoeren.
‫Dus laten we dit bestand uitvoeren en het zal alle info en de console weergeven.
‫Dus daar zijn we, Lenfest vrij en Hyde is voor en met zijn vijf, dus het volume is 16.
‫Goed, dat is dus gelukt.
‫Dat is geweldig.
‫Dus deze weergave-informatie werkte en het speelde gewoon de details die we wilden.
‫Wat we nu zouden kunnen doen, is dat we de waarden kunnen veranderen of wat we kunnen veranderen aan de waarden van
‫de lidvariabelen van onze boxklasse, en we kunnen dit doen omdat ze openbaar zijn.
‫Rechts.
‫Deze is dus openbaar.
‫Deze is openbaar.
‫Deze is ook openbaar.
‫Ze zijn dus allemaal openbaar.
‫Dit is een zeer onveilige code, want als je nu lidrobots schrijft, die volledig openbaar zijn, kan iedereen
‫ze op elk moment wijzigen.
‫Dus iedereen die een object kan maken of elke klasse die een object of box kan maken,
‫kan al die waarden van die instantie van de box wijzigen.
‫Dus iedereen die toegang had tot deze box kan deze nu wijzigen.
‫En dat is iets dat verderop voor veel problemen kan zorgen, juist als je programmeert en een team en staf
‫dan echt omslachtig kan worden om op deze manier te doen.
‫Dus er zijn betere manieren, er zijn schonere manieren om dat te implementeren, want misschien wil je niet
‫dat dit uiteindelijk instelbaar is.
‫Misschien wil je dat de lengte een bepaalde waarde heeft.
‫Niemand kan het aanpassen.
‫Wat je dan zou kunnen doen is dit te maken.
‫Zeer privé, dus de variabele lengte van mijn lid wordt privé en ik ga er gewoon een standaardwaarde van
‫drie aan toewijzen.
‫Dus nu heeft elke doos die ik maak de waarde voor de lengte van drie.
‫Dus elke doos heeft een lengte van drie inch of meter of wat de meetwaarden ook zijn die je gebruikt.
‫Dus nu kan ik geen lengte meer toekennen.
‫Dus je ziet, ik krijg een foutmelding als deze die ontoegankelijk is vanwege het beschermingsniveau.
‫Daarom hebben we het beschermingsniveau toegevoegd door het privé te maken.
‫Dus nu kunnen we het niet meer aanpassen.
‫Dus hoe kunnen we het nog veranderen?
‫Nou, dat kunnen we niet, niet op deze manier.
‫We moeten dus iets implementeren.
‫We moeten een alternatieve manier implementeren om de lengte van de doos te wijzigen.
‫Oke.
‫Om dit te doen, kunnen we iets doen dat setters en getters wordt genoemd.
‫Dus in dit geval hebben we zelfs geen toegang meer tot de lengte van de doos.
‫Dus laten we zeggen dat ik de lengte wil schrijven.
‫Dus ik wil de juiste regellengte raadplegen en dan gewoon toegang krijgen tot de dooslengte.
‫Zoals je kunt zien, laat mijn ID me niet eens de variabele zien.
‫Ik heb geen toegang tot een vak van die lengte, dus ik kan het niet wijzigen, maar ik kan het ook niet lezen.
‫Oke.
‫Dus ik kan het niet krijgen of instellen.
‫Dus dit is instelling en dit is het krijgen van de variabele.
‫Dit zijn zeer belangrijke termen voor het instellen en verkrijgen, want wat we nu kunnen doen, is dat we
‫methoden kunnen maken in onze box-klasse, waarmee we de variabele lengte kunnen instellen of krijgen.
‫Dus laten we dat gewoon doen.
‫Laten we een maken.
‫Setar, zo openbaar.
‫Voight stelt lengte in, dus dit verbale zal nu de lengte bepalen, waar zal het het op instellen?
‫Welnu, het heeft hier een variabele of een parameter nodig.
‫Het heeft hier een waarde nodig waarop het kan worden ingesteld.
‫Dus het gaat gewoon.
‫Ik heb hier een geheel getal nodig, en ik noem dit gewoon een lengte.
‫Dus het zal nu de lengte instellen, ik zal lengte instellen, gelijke lengte.
‫Nu is dit verwarrend en het is ook onjuist.
‫Dus ik krijg hier een waarschuwing.
‫Krijg hier niet eens een foutmelding, want zoals je kunt zien, zijn de kleuren anders.
‫Rechts?
‫Dus deze kleur en die kleur zijn iets anders.
‫Dit is deze zeer lichte kleur en deze is een donkerdere blauwe kleur.
‫Dus wat is hier aan de hand?
‫Omdat we hier hetzelfde woord gebruiken, werd hier lengte gebruikt.
‫We gebruiken lengte en hier ook hier.
‫Dus deze lengte hier is eigenlijk deze of zou deze lengte hier bovenaan moeten zijn.
‫Dus als ik het goed wil doen, kan ik dit trefwoord gebruiken.
‫Door dit te doen, zeg ik, OK, ik wil de lengte veranderen, dat wil zeggen.
‫Onderdelen.
‫Van deze klasse genaamd box, dus ik wil de lengte van dit object wijzigen.
‫OK, dus in dit geval van het object dat is gemaakt van de klassenbox.
‫Oke.
‫Dus welke lengte ik ook toegewezen krijg, dus welke lengte ook voorbij is, één vaste lengte wordt
‫deze methode genoemd.
‫Deze variabele hier, en het zal worden ingesteld op de lengte, wat mijn privé-lidvariabele van mijn box is, dit is
‫erg belangrijk, want wat ik nu kan doen, is dat ik nu door kan gaan en de lengte van de box
‫kan veranderen door dit te doen set lengte.
‫Ik kan de lengte ook instellen op bijvoorbeeld drie en nu de code opnieuw uitvoeren en het zal prima
‫werken.
‫En laten we eens kijken, oké, we zijn lengte vrij, hydrosfeer enzovoort.
‫Oké, laten we zeggen dat ik er geen drie wil hebben, omdat dit de standaardwaarde was.
‫Laten we zeggen dat ik de lengte wil hebben en nu kunnen we zien dat het werkt en dat het volume ook is
‫aangepast.
‫Dus het werkte zelfs voor de berekening.
‫Dus dat is geweldig.
‫Dus nu kunnen we een variabele instellen, die een lidvariabele van een klasse is.
‫Dus dat is belangrijk.
‫We hebben het over een andere klas.
‫Het is niet in dezelfde klas.
‫Wat we kunnen doen is proberen toegang te krijgen tot deze lengte omdat het privé is.
‫Rechts?
‫Dus hoe kon ik er toegang toe krijgen?
‫Want misschien heb ik deze variabele hier echt ergens nodig.
‫Ik wil toegang tot de lengte, maar ik kan het niet doen.
‫Dus wat ik kan implementeren is iets dat een GETER wordt genoemd.
‫Dus ik krijg lengte openbaar.
‫En in dit geval moet het type hetzelfde type zijn als de variabele die ik wil retourneren.
‫En in dit geval wil ik de waarde van deze lengte retourneren waar ik de lengte zelf wil retourneren.
‫Rechts.
‫Het is dus van het type einde.
‫Dus ik moet een eindtype retourneren voor deze methode.
‫Dus deze krijgt lengte.
‫En dit is ook de afspraak om de naam get met een hoofdletter G te gebruiken en dan de naam van de variabele die je
‫wilt krijgen.
‫En in dit geval wil ik de variabele lengte krijgen en nu retourneer je gewoon de lengte.
‫Nu, om preciezer te zijn, moet je dit zo lang teruggeven.
‫Natuurlijk, je zou gewoon voor die lengte kunnen zijn.
‫Maar als je dit toevoegt, is het volkomen duidelijk dat we het hier hebben over de member-variabele.
‫We hebben het dus over de variabele die zich op het hoogste niveau van deze klasse bevindt.
‫Dus het is niet binnen een methode of zo.
‫Op deze manier kon je er niet eens bij.
‫Maar hier is het deze specifieke lengte waar we het over hebben.
‫Dus als ik erop klik, kun je mijn I zien. D. markeert het automatisch.
‫En het markeert ook deze lengte hier onderaan.
‫Dus nu kan ik de lengte krijgen door get length te gebruiken door deze openbare methode te gebruiken en het is belangrijk dat het openbaar is, want
‫als het niet openbaar was, had ik er geen toegang toe.
‫Dus in dit geval sla ik de box opnieuw op en nu krijg ik de lengte door deze methode get length aan te
‫roepen en nu werkt het plotseling weer.
‫Dus nu kan ik verder.
‫En uiteraard.
‫Hier ook correct, lengte en laten we het nog eens herhalen, en het gaat zeggen dat de lengte van de doos is
‫en in dit geval is het vier.
‫Oké, dus dit is slechts de voorbereiding voor eigenschappen, maar het is een belangrijk concept, setters en
‫getters.
‫Dit is iets wat je ook veel gaat zien.
‫Het is dus een hele fijne aanpak, maar er zijn veel eenvoudigere en snellere benaderingen.
‫Dit is dus slechts één manier om het te doen.
‫Maar ik ga je twee of zelfs drie andere manieren laten zien om het nog sneller te maken en hetzelfde
‫type bescherming te hebben, want wat we hier doen, wordt inkapseling genoemd.
‫Dus we kapselen het overschot van onze lengte in.
‫De definitie van is dat inkapseling verwijst naar het bouwen van gegevens met de methoden die op
‫die gegevens werken of het beperken van directe toegang tot sommige van een objectcomponenten.
‫Dat is dus precies wat we doen.
‫We beperken de toegang tot dit onderdeel met de naam lengte, dat deel uitmaakt van een object of onze klassendoos
‫waarvan we objecten kunnen maken.
‫Oke.
‫En we creëren deze setters en getters om ze alsnog bij te sturen.
‫Het mooie is dat je kunt definiëren hoe je wilt inkapselen.
‫In dit geval heb ik ze allebei openbaar gemaakt.
‫Maar wat als ik niet wil dat ze openbaar zijn?
‫Wat als ik dit wil.
‫Niet geschikt, dus laten we zeggen dat ik niet wil dat iemand de lengte van mijn doos kan bepalen, dus wat ik
‫zou kunnen doen is deze privé maken.
‫Dus alleen nu.
‫Klassen die van onze box of de box zelf erven, kunnen de lengte van buitenaf instellen, wij kunnen de
‫lengte niet meer instellen.
‫Dus als je hier lengte instelt, werkt deze regel code niet meer omdat ik besloot, oké,
‫als iemand de lengte wil instellen, ik wilde alleen de klasse zelf zijn of klassen erven, maar geen klassen buiten
‫mij.
‫Dit is iets dat je direct vanaf hier kunt wijzigen, je zou ook kunnen zeggen, OK, zelfs het krijgen van
‫de lengte zou buiten hier niet zijn toegestaan.
‫Oke.
‫Maar nu het leuke is dat je door kunt gaan en die kunt aanpassen.
‫Dus laten we zeggen dat iemand het volume wil hebben.
‫En nu hebben we het volume nog niet ingesteld.
‫Dus wat we in plaats daarvan kunnen doen, kunnen we zeggen dat publiek int volume krijgt.
‫En als iemand het volume wil hebben, gaan we niet alleen volume teruggeven, maar wat we zullen doen is
‫dat we zullen terugkeren.
‫Deze startlengte vermenigvuldigd met deze gedachte, hoogte vermenigvuldigd met deze gedachte met dus als iemand het volume wil hebben,
‫zal hij het volume niet direct krijgen.
‫Krijg dus niet rechtstreeks toegang tot deze variabele.
‫Deze volumevariabele.
‫Maar ze krijgen wel het resultaat van de berekening.
‫Dus als ik dit nu opsla en in plaats daarvan doorga en hier gebruik ik get volume, dan is het volume van de box en nu wordt het
‫volume van de box weergegeven.
‫Dus laten we eens kijken, doos, dit volume is 60.
‫Dus wat we nu in het algemeen met deze setters en getters doen, is
‫dat we niet rechtstreeks toegang geven tot de variabele, tot de lidvariabele, maar we geven alleen toegang tot een methode
‫die vervolgens de variabele kan aanpassen en we kunnen zelf beslissen hoe we deze waarde doorgeven.
‫Dus hoe we de waarde in dit geval met groot volume uitdelen, hebben we besloten, oké, we willen je niet het volume zelf
‫geven, maar we willen je het resultaat van een berekening geven.
‫Of we kunnen zeggen, oké, als iemand het volume wil hebben, gaan we
‫zeggen dat het volume maal twee wordt of zoiets, of als iemand de lengte wil instellen en het is iets negatiefs.
‫Dus laten we zeggen dat we dit nog een keer openbaar maken, publieke stem uitgebreid en nu dubbelchecken of.
‫Lengte.
‫Is kleiner dan nul.
‫We gaan een fout genereren, een nieuwe uitzonderingsgrootte genereren, of deze lengte moet groter zijn dan nul.
‫Oke.
‫Dus als de lengte kleiner is dan nul, gooien we een uitzondering en dit zal ons programma gewoon laten crashen, zodat deze
‫regel nooit wordt uitgevoerd.
‫Dus laten we dit nu proberen.
‫Laten we naar ons programma gaan en onze dooslengte op een negatieve waarde instellen.
‫Laten we het op min vier zetten.
‫Nu voeren we het opnieuw uit en we zullen zien dat we een uitzondering krijgen.
‫Dus ons programma crasht en we krijgen hier een uitzondering.
‫Systeem, uitzonderlijke lengte moet groter zijn dan nul.
‫Dus je ziet, met gegooide uitzondering, kunnen we onze eigen uitzonderingen gooien.
‫We kunnen zelfs zeggen wat de uitzonderingen zouden moeten zeggen.
‫En het moet zinvol zijn.
‫Het moet iets zijn dat nuttig is en duidelijk maakt wat de fout is.
‫In dit geval hebben we een fout gemaakt omdat we de lengte hebben ingesteld op iets dat kleiner is dan nul.
‫Oke.
‫Dus dat is de kracht van deze setters en getters, want je zou je kunnen afvragen, waarom zou ik die setters nodig hebben
‫om ons te krijgen?
‫Waarom kan ik niet gewoon rechtstreeks toegang krijgen tot de lengte als ik alleen setters heb en ook krijg?
‫Nu je het ziet, kun je actief beslissen wat er wordt ingesteld en wat er wordt verkregen als iemand toegang probeert te krijgen
‫tot deze variabele en deze probeert te wijzigen of zelfs maar op te halen.
‫Oké, dus dit was veel langer dan ik had verwacht en ik was van plan deze
‫video te maken, maar ik wilde echt alles duidelijk maken, want dit wordt een
‫belangrijke opstap naar het volgende concept, dat eigenschappen.
‫Dus je gaat zien hoe we dit allemaal kunnen samenvatten of een stuk korter kunnen maken door eigenschappen te gebruiken.
‫Dus ik zou zeggen, laten we naar de volgende video gaan, waar we gaan kijken hoe we eigenschappen kunnen gebruiken en hoe ze
‫zich verhouden tot wat we in deze video hebben geleerd.
‫Ik hoop dat het zin heeft.
‫Als je vragen hebt, laat het me dan weten.
‫En ja, schrijf gewoon een opmerking en natuurlijk discussies.
‫En trouwens, heel erg bedankt voor iedereen die feedback geeft, want het helpt me echt om de cursus
‫beter te maken als je dit passief bekijkt, want het is helemaal goed.
‫Maar ik stel het zeer op prijs als je feedback hebt en het is constructief en helpt me echt om te weten op
‫welk punt iets niet duidelijk is, want als je gewoon zegt: OK, deze video is complete onzin, dan
‫zal het niet zo nuttig zijn als wanneer je zeg, oké, ik begreep het concept niet een minuut vijf of zoiets dat ik
‫veel beter begrijp wat het probleem is.
‫Dus nogmaals bedankt en tot ziens in de volgende video.