Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer · Lektion

Klasser, objekter og metoder

Lær at definere klasser, oprette objekter og implementere instans- og klassemetoder for at indkapsle adfærd.

Lektion 1 af 411 trin

Klasser, objekter og metoder er en gratis Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer-kurset indeholder 4 lektioner i alt.

Grundlæggende OOP: Klasser og objekter

Velkommen til objektorienteret programmering (OOP) i Objective-C! OOP hjælper med at organisere kode i genanvendelige skabeloner kaldet klasser.

Ud fra disse skabeloner opretter vi enkelte elementer kaldet objekter. Tænk på en klasse som en udstiksform og et objekt som en småkage!

Din første klasse: Header-fil

Alle Objective-C-klasser har to hovedfiler: en .h-fil (header) og en .m-fil (implementering).

Header-filen (.h) deklarerer, hvad din klasse er, og hvad den kan gøre. Den fungerer som den offentlige skabelon.

Sådan deklarerer du en simpel Person-klasse:

// Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject

// Method declaration
- (void)sayHello;

@end

Implementering af en klasse: Kildekodefil

Implementeringsfilen (.m) indeholder den faktiske kode, der får din klasse til at fungere. Den definerer den adfærd, der er deklareret i headeren.

Her implementerer vi sayHello-metoden til vores Person-klasse:

// Person.m
#import "Person.h"

@implementation Person

- (void)sayHello {
  NSLog(@"Hello from a Person object!");
}

@end

Giv klasser liv: Objekter

Nu hvor vi har en Person-klasse, kan vi oprette et objekt ud fra den! At oprette et objekt kaldes også instansiering.

I Objective-C bruger vi metoderne alloc og init til at oprette nye objekter. alloc reserverer hukommelse, og init initialiserer den.

Prøv at køre dette eksempel:

#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: Objekters handlinger

Instansmetoder er handlinger, som et individuelt objekt kan udføre. De arbejder normalt med data, der er specifikke for objektet.

For at få et objekt til at udføre en handling sender du det en meddelelse. Syntaksen er [object methodName];.

Lad os få vores person1-objekt til at sige 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 argumenter

Metoder kan også modtage argumenter (eller parametre) for at tilpasse deres adfærd. Objective-C bruger en unik syntaks til metodeargumenter, som gør metoder meget beskrivende.

Det første argument er en del af metodenavnet, og efterfølgende argumenter er navngivne.

Lad os tilføje en metode til vores Person-klasse, der modtager et navn:

#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;
}

Klassens metoder: Typehandlinger

I modsætning til instansmetoder tilhører klassens metoder (også kaldet statiske metoder) selve klassen og ikke et bestemt objekt.

De begynder med tegnet + i deres deklaration og implementering. Du kalder dem direkte på klassenavnet, f.eks. [ClassName methodName];.

Klassens metoder bruges ofte til at oprette objekter eller hjælpefunktioner, der er relateret til 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;
}

Klasse kontra instans: Den vigtige forskel

Her er en kort opsummering af de vigtigste forskelle:

  • Instansmetoder (-): Arbejder med data fra et bestemt objekt. Du skal have en objektinstans for at kalde dem.
  • Klassens metoder (+): Arbejder med selve klassen og ikke en instans. Du kalder dem direkte på klassenavnet. De har ikke adgang til instansvariabler.

Vælg den rigtige type ud fra, om handlingen kræver specifikke objektdata eller generel funktionalitet relateret til klassen.

Afsendelse af meddelelser i Objective-C

I Objective-C kaldes det formelt at kalde en metode for at sende en meddelelse til et objekt (eller en klasse).

Syntaksen [receiver messageName:argument]; betyder, at vi sender meddelelsen messageName: til objektet (eller klassen) receiver.

Denne mekanisme til at sende meddelelser er en central del af Objective-C's dynamiske egenskaber.

Hurtigt tjek: Klasser og metoder

Test din viden om det grundlæggende i objektorienteret programmering i Objective-C.

Opsummering: Klasser, objekter og metoder

Godt gået! I denne lektion lærte du:

  • Hvad klasser er (skabeloner), og hvad objekter er (instanser).
  • Hvordan man deklarerer en klasse i en .h-fil og implementerer den i en .m-fil.
  • Hvordan man opretter objekter med alloc og init.
  • Forskellen mellem instansmetoder (-) og klassens metoder (+).
  • Hvordan Objective-C bruger meddelelsesafsendelse til at kalde metoder.

Nu er du klar til at bygge mere komplekse og velorganiserede Objective-C-apps!

Gratis at komme i gang

Lær Objective-C med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Klasser, objekter og metoder” gratis?

Ja — hele teksten til “Klasser, objekter og metoder” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer-kurset, skal du opgradere til CoddyKit PRO. Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Klasser, objekter og metoder”?

Lær at definere klasser, oprette objekter og implementere instans- og klassemetoder for at indkapsle adfærd. Du øver dig i Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer?

Der kræves ingen tidligere erfaring. Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Klasser, objekter og metoder”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer-lektion?

Ja. Alle Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Klasser, objekter og metoder
  2. Egenskaber og instansvariabler
  3. Protokoller og kategorier
  4. Nedarvning og tilsidesættelse af metoder
← Tilbage til Objective-C-udvikling til iOS med ældre og virksomhedsapplikationer