Klasser, objekt och metoder
Lär dig att definiera klasser, skapa objekt och implementera instans- och klassmetoder för att kapsla in beteende.
Klasser, objekt och metoder är en gratis lektion i Objective-C för iOS-utveckling av äldre appar och företagsappar på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Objective-C för iOS-utveckling av äldre appar och företagsappar, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Objective-C för iOS-utveckling av äldre appar och företagsappar innehåller totalt 4 lektioner.
Grunderna i OOP: klasser och objekt
Välkommen till objektorienterad programmering (OOP) i Objective-C! OOP hjälper dig att organisera kod i återanvändbara mallar som kallas klasser.
Utifrån dessa mallar skapar vi enskilda saker som kallas objekt. Tänk på en klass som en kakform och ett objekt som en kaka!
Din första klass: headerfilen
Varje Objective-C-klass har två huvudfiler: en .h- (header-)fil och en .m- (implementation-)fil.
Headerfilen (.h) deklarerar vad klassen är och vad den kan göra. Den fungerar som en offentlig ritning.
Så här deklarerar du en enkel Person-klass:
// Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
// Method declaration
- (void)sayHello;
@endKlassimplementation: källfilen
Implementationsfilen (.m) innehåller den faktiska koden som får klassen att fungera. Den definierar beteendet som deklareras i headerfilen.
Här implementerar vi metoden sayHello för vår Person-klass:
// Person.m
#import "Person.h"
@implementation Person
- (void)sayHello {
NSLog(@"Hello from a Person object!");
}
@endGe klasser liv: objekt
Nu när vi har en Person-klass skapar vi ett objekt från den! Att skapa ett objekt kallas också instansiering.
I Objective-C använder vi metoderna alloc och init för att skapa nya objekt. alloc reserverar minne och init initierar objektet.
Prova att köra det här exemplet:
#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;
}Instansmetoder: objektens åtgärder
Instansmetoder är åtgärder som ett enskilt objekt kan utföra. De arbetar vanligtvis med data som hör till just det objektet.
För att be ett objekt utföra en åtgärd skickar du ett meddelande till det. Syntaxen är [object methodName];.
Låt oss få objektet person1 att säga hej:
#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;
}Metoder med argument
Metoder kan också ta emot argument (eller parametrar) för att anpassa sitt beteende. Objective-C använder en unik syntax för metodargument, vilket gör metoderna mycket beskrivande.
Det första argumentet är en del av metodnamnet och efterföljande argument förses med etiketter.
Låt oss lägga till en metod i klassen Person som tar emot ett namn:
#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;
}Klassmetoder: typens åtgärder
Till skillnad från instansmetoder hör klassmetoder (även kallade statiska metoder) till själva klassen, inte till ett specifikt objekt.
De börjar med tecknet + i sin deklaration och implementation. Du anropar dem direkt på klassnamnet, till exempel [ClassName methodName];.
Klassmetoder används ofta för att skapa objekt eller för verktygsfunktioner som hör till klassen.
#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;
}Klass kontra instans: den viktiga skillnaden
Här är en snabb sammanfattning av de viktigaste skillnaderna:
- Instansmetoder (
-): Arbetar med data i ett specifikt objekt. Du behöver en objektinstans för att anropa dem. - Klassmetoder (
+): Arbetar med själva klassen, inte med en instans. Du anropar dem direkt på klassnamnet. De har inte tillgång till instansvariabler.
Välj rätt typ beroende på om åtgärden behöver specifika objektdata eller generell funktionalitet för klassen.
Skicka meddelanden i Objective-C
I Objective-C kallas det formellt att anropa en metod för att skicka ett meddelande till ett objekt (eller en klass).
Syntaxen [receiver messageName:argument]; betyder att vi skickar meddelandet messageName: till objektet (eller klassen) receiver.
Den här mekanismen för meddelandehantering är en central del av Objective-C:s dynamiska natur.
Snabb kontroll: klasser och metoder
Testa dina kunskaper om grunderna i OOP med Objective-C.
Sammanfattning: klasser, objekt och metoder
Bra jobbat! I den här lektionen har du lärt dig:
- Vad klasser är (ritningar) och vad objekt är (instanser).
- Hur man deklarerar en klass i en
.h-fil och implementerar den i en.m-fil. - Hur man skapar objekt med
allocochinit. - Skillnaden mellan instansmetoder (
-) och klassmetoder (+). - Hur Objective-C använder meddelandehantering för att anropa metoder.
Nu är du redo att bygga mer komplexa och välorganiserade Objective-C-appar!
Lär dig Objective-C med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Klasser, objekt och metoder” gratis?
Ja – hela texten till ”Klasser, objekt och metoder” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Objective-C för iOS-utveckling av äldre appar och företagsappar, kan Ni uppgradera till CoddyKit PRO. Kursen i Objective-C för iOS-utveckling av äldre appar och företagsappar innehåller totalt 4 lektioner.
Vad lär jag mig i ”Klasser, objekt och metoder”?
Lär dig att definiera klasser, skapa objekt och implementera instans- och klassmetoder för att kapsla in beteende. Ni övar på Objective-C för iOS-utveckling av äldre appar och företagsappar med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Objective-C för iOS-utveckling av äldre appar och företagsappar?
Du behöver inga förkunskaper. Utbildningen i Objective-C för iOS-utveckling av äldre appar och företagsappar på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Klasser, objekt och metoder”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Objective-C för iOS-utveckling av äldre appar och företagsappar-lektionen?
Ja. Varje Objective-C för iOS-utveckling av äldre appar och företagsappar-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Klasser, objekt och metoder
- Egenskaper och instansvariabler
- Protokoll och kategorier
- Arv och åsidosättning av metoder