Klassen, objecten en methoden
Leer klassen te definiëren, objecten te maken en instantie- en klassenmethoden te implementeren om gedrag in te kapselen.
Klassen, objecten en methoden is een gratis Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps bevat in totaal 4 lessen.
De basis van OOP: klassen en objecten
Welkom bij objectgeoriënteerd programmeren (OOP) in Objective-C! Met OOP organiseer je code in herbruikbare blauwdrukken die klassen worden genoemd.
Vanuit deze blauwdrukken maken we afzonderlijke onderdelen die objecten worden genoemd. Zie een klasse als een koekjesvorm en een object als een koekje!
Je eerste klasse: headerbestand
Elke Objective-C-klasse heeft twee hoofdbestanden: een .h- (header) en een .m-bestand (implementatie).
Het headerbestand (.h) declareert wat je klasse is en wat deze kan doen. Het is als het ware de openbare blauwdruk.
Zo declareer je een eenvoudige klasse Person:
// Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
// Method declaration
- (void)sayHello;
@endKlasse implementeren: bronbestand
Het implementatiebestand (.m) bevat de daadwerkelijke code die ervoor zorgt dat je klasse werkt. Het definieert het gedrag dat in de header is gedeclareerd.
Hier implementeren we de sayHello-methode voor onze klasse Person:
// Person.m
#import "Person.h"
@implementation Person
- (void)sayHello {
NSLog(@"Hello from a Person object!");
}
@endKlassen tot leven brengen: objecten
Nu we een klasse Person hebben, maken we er een object van! Een object maken heet ook wel instantiëren.
In Objective-C gebruiken we de methoden alloc en init om nieuwe objecten te maken. alloc reserveert geheugen en init initialiseert het object.
Probeer dit voorbeeld uit te voeren:
#import <Foundation/Foundation.h>
// Person.h (declared here for runnable example)
@interface Person : NSObject
- (void)sayHello;
@end
// Person.m (implemented here for runnable example)
@implementation Person
- (void)sayHello {
NSLog(@"Hello from a Person object!");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
// Create a Person object
Person *person1 = [[Person alloc] init];
NSLog(@"Created a Person object: %@", person1);
}
return 0;
}Instantmethoden: acties van objecten
Instantmethoden zijn acties die een afzonderlijk object kan uitvoeren. Ze werken meestal met gegevens die specifiek zijn voor dat object.
Om een object een actie te laten uitvoeren, stuur je het een bericht. De syntaxis is [object methodName];.
Laten we ons object person1 hallo laten zeggen:
#import <Foundation/Foundation.h>
@interface Person : NSObject
- (void)sayHello;
@end
@implementation Person
- (void)sayHello {
NSLog(@"Hello from a Person object!");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *person1 = [[Person alloc] init];
[person1 sayHello]; // Sending the 'sayHello' message
}
return 0;
}Methoden met argumenten
Methoden kunnen ook argumenten (of parameters) accepteren om hun gedrag aan te passen. Objective-C gebruikt een unieke syntaxis voor methodeargumenten, waardoor methoden zeer beschrijvend zijn.
Het eerste argument maakt deel uit van de methodenaam en volgende argumenten krijgen een label.
Laten we een methode aan onze klasse Person toevoegen die een naam accepteert:
#import <Foundation/Foundation.h>
@interface Person : NSObject
- (void)sayHelloTo:(NSString *)name; // Method with one argument
@end
@implementation Person
- (void)sayHelloTo:(NSString *)name {
NSLog(@"Hello, %@ from a Person object!", name);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *person1 = [[Person alloc] init];
[person1 sayHelloTo:@"Alice"]; // Sending message with argument
}
return 0;
}Klassenmethoden: acties van typen
In tegenstelling tot instantmethoden horen klassenmethoden (ook wel statische methoden genoemd) bij de klasse zelf en niet bij een specifiek object.
In hun declaratie en implementatie beginnen ze met een teken +. Je roept ze rechtstreeks aan op de klassenaam, bijvoorbeeld met [ClassName methodName];.
Klassenmethoden worden vaak gebruikt om objecten of hulpfuncties te maken die bij de klasse horen.
#import <Foundation/Foundation.h>
@interface Person : NSObject
+ (void)aboutThisClass; // Class method declaration
@end
@implementation Person
+ (void)aboutThisClass {
NSLog(@"This is the Person class, used to create person objects.");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
[Person aboutThisClass]; // Calling a class method
}
return 0;
}Klasse versus instantie: het belangrijkste verschil
Hier volgt een korte samenvatting van de belangrijkste verschillen:
- Instantmethoden (
-): Werken met de gegevens van een specifiek object. Je hebt een objectinstantie nodig om ze aan te roepen. - Klassenmethoden (
+): Werken met de klasse zelf, niet met een instantie. Je roept ze rechtstreeks aan op de klassenaam. Ze hebben geen toegang tot instantievariabelen.
Kies het juiste type afhankelijk van de vraag of de actie specifieke objectgegevens of algemene functionaliteit van de klasse nodig heeft.
Berichten versturen in Objective-C
In Objective-C wordt het aanroepen van een methode officieel een bericht naar een object (of klasse) sturen genoemd.
De syntaxis [receiver messageName:argument]; betekent dat we het bericht messageName: naar het object (of de klasse) receiver sturen.
Dit mechanisme voor het versturen van berichten vormt een kernonderdeel van het dynamische karakter van Objective-C.
Korte controle: klassen en methoden
Test je kennis van de basisprincipes van OOP in Objective-C.
Samenvatting: klassen, objecten en methoden
Goed gedaan! In deze les heb je geleerd:
- Wat klassen zijn (blauwdrukken) en wat objecten zijn (instanties).
- Hoe je een klasse declareert in een
.h-bestand en implementeert in een.m-bestand. - Hoe je objecten maakt met
alloceninit. - Het verschil tussen instantmethoden (
-) en klassenmethoden (+). - Hoe Objective-C berichten verstuurt om methoden aan te roepen.
Je bent nu klaar om complexere en beter georganiseerde Objective-C-applicaties te bouwen!
Leer Objective-C met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Klassen, objecten en methoden” gratis?
Ja — de volledige tekst van “Klassen, objecten en methoden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps bevat in totaal 4 lessen.
Wat leer ik in “Klassen, objecten en methoden”?
Leer klassen te definiëren, objecten te maken en instantie- en klassenmethoden te implementeren om gedrag in te kapselen. Je oefent met Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps te beginnen?
Ervaring vooraf is niet nodig. Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Klassen, objecten en methoden”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps?
Ja. Elke les over Objective-C-iOS-ontwikkeling voor legacy- en bedrijfsapps bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Klassen, objecten en methoden
- Properties en instantiëringsvariabelen
- Protocollen en categorieën
- Overerving en methoden overschrijven