Objecten ontwerpen en maken

Als objecten nieuw voor u zijn, wordt u waarschijnlijk gebruikt om Java-programma's te maken met slechts één bestand - een Java-hoofdklassebestand. Het is de klasse waarvan de hoofdmethode is gedefinieerd voor het startpunt van een Java-programma.

De klassendefinitie in de volgende stap moet in een apart bestand worden opgeslagen. Het volgt dezelfde naamgevingsrichtlijnen als die u hebt gebruikt voor het hoofdklassebestand (d.w.z. de naam van het bestand moet overeenkomen met de naam van de klasse met de bestandsnaamextensie .java). Als we bijvoorbeeld een klasse Boek maken, moet de volgende klassendeclaratie worden opgeslagen in een bestand met de naam "Book.java".

De gegevens die een object bevat en hoe het die gegevens manipuleert, worden gespecificeerd door het maken van een klasse. Hieronder staat bijvoorbeeld een zeer eenvoudige definitie van een klasse voor een boekobject:

Velden worden gebruikt om de gegevens voor het object op te slaan en samen vormen ze de status van een object. Als we een boekobject maken, is het logisch dat het gegevens bevat over de titel, auteur en uitgever van het boek:

instagram viewer

Velden zijn slechts normale variabelen met één belangrijke beperking: ze moeten de toegangsmodifier "private" gebruiken. Het private trefwoord betekent dat deze variabelen alleen toegankelijk zijn vanuit de klasse die ze definieert.

Notitie: deze beperking wordt niet opgelegd door de Java-compiler. U kunt een openbare variabele maken in uw klassendefinitie en de Java-taal zal er niet over klagen. U breekt echter een van de fundamentele principes van objectgeoriënteerd programmeren: gegevens inkapseling. De status van uw objecten mag alleen worden benaderd door hun gedrag. Of om het praktisch uit te drukken: uw klassenvelden mogen alleen worden geopend via uw klassemethoden. Het is aan jou om de inkapseling van gegevens af te dwingen op de objecten die je maakt.

De constructormethode gebruikt dezelfde naam als de klasse (d.w.z. Boek) en moet openbaar toegankelijk zijn. Het neemt de waarden van de variabelen die erin worden doorgegeven en stelt de waarden van de klassenvelden in; waardoor het object in zijn oorspronkelijke staat wordt gebracht.

Gedrag is de handeling die een object kan uitvoeren en wordt als methode geschreven. Op dit moment hebben we een klasse die kan worden geïnitialiseerd maar niet veel anders doet. Laten we een methode toevoegen met de naam "displayBookData" die de huidige gegevens in het object weergeeft:

We kunnen zoveel methoden en velden toevoegen als we willen, maar laten we de klasse Boek voorlopig als compleet beschouwen. Het heeft drie velden om gegevens over een boek te bevatten, het kan worden geïnitialiseerd en het kan de gegevens die het bevat weergeven.

Aan de linkerkant van het gelijkteken staat de objectverklaring. Het zegt dat ik een Book-object wil maken en het "firstBook" wil noemen. Aan de rechterkant van het is-gelijkteken staat het maken van een nieuw exemplaar van een boekobject. Wat het doet, is naar de klassedefinitie Boek gaan en de code uitvoeren binnen de constructormethode. Het nieuwe exemplaar van het boekobject wordt dus gemaakt met de titel, auteur en uitgever velden respectievelijk ingesteld op "Horton Hears A Who!", "Dr Suess" en "Random House". Ten slotte stelt het gelijkteken ons nieuwe firstBook-object in als het nieuwe exemplaar van de klasse Book.

instagram story viewer