Klasser, objekter og metoder
Lær å definere klasser, opprette objekter og implementere instans- og klassemetoder for å kapsle inn atferd.
Klasser, objekter og metoder er en gratis leksjon i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper inneholder totalt 4 leksjoner.
Grunnleggende OOP: Klasser og objekter
Velkommen til objektorientert programmering (OOP) i Objective-C! OOP hjelper Dem med å organisere kode i gjenbrukbare maler kalt klasser.
Fra disse malene oppretter vi individuelle elementer kalt objekter. Tenk på en klasse som en pepperkakeform og et objekt som en pepperkake!
Deres første klasse: Header-fil
Hver Objective-C-klasse har to hovedfiler: en .h-fil (header) og en .m-fil (implementasjon).
Header-filen (.h) deklarerer hva klassen er, og hva den kan gjøre. Den fungerer som en offentlig mal.
Slik deklarerer De en enkel Person-klasse:
// Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
// Method declaration
- (void)sayHello;
@endImplementere en klasse: Kildekodefil
Implementasjonsfilen (.m) inneholder den faktiske koden som får klassen til å fungere. Den definerer atferden som er deklarert i header-filen.
Her implementerer vi sayHello-metoden for Person-klassen:
// Person.m
#import "Person.h"
@implementation Person
- (void)sayHello {
NSLog(@"Hello from a Person object!");
}
@endGi liv til klasser: Objekter
Nå som vi har en Person-klasse, kan vi opprette et objekt fra den! Å opprette et objekt kalles også instansiering.
I Objective-C bruker vi metodene alloc og init til å opprette nye objekter. alloc reserverer minne, og init initialiserer objektet.
Prøv å kjøre dette eksempelet:
#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: Objektenes handlinger
Instansmetoder er handlinger som et individuelt objekt kan utføre. De arbeider vanligvis med data som er spesifikke for objektet.
For å be et objekt utføre en handling sender De det en melding. Syntaksen er [object methodName];.
La oss få person1-objektet til å si hei:
#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å ta imot argumenter (eller parametere) for å tilpasse atferden. Objective-C bruker en unik syntaks for metodeargumenter, slik at metodene blir svært beskrivende.
Det første argumentet er en del av metodenavnet, og påfølgende argumenter får etiketter.
La oss legge til en metode i Person-klassen som tar imot 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;
}Klass metoder: Typehandlinger
I motsetning til instansmetoder tilhører klassmetoder (også kalt statiske metoder) selve klassen, ikke et bestemt objekt.
De begynner med tegnet + i deklarasjonen og implementasjonen. De kalles direkte på klassenavnet, for eksempel [ClassName methodName];.
Klassmetoder brukes ofte til å opprette objekter eller hjelpefunksjoner knyttet 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: Viktig forskjell
Her er en kort oppsummering av de viktigste forskjellene:
- Instansmetoder (
-): Arbeider med dataene til et bestemt objekt. De trenger en objektinstans for å kunne kalles. - Klassmetoder (
+): Arbeider med selve klassen, ikke en instans. De kalles direkte på klassenavnet. De har ikke tilgang til instansvariabler.
Velg riktig type basert på om handlingen trenger spesifikke objektdata eller generell funksjonalitet knyttet til klassen.
Sende meldinger i Objective-C
I Objective-C kalles det formelt å kalle en metode for å sende en melding til et objekt (eller en klasse).
Syntaksen [receiver messageName:argument]; betyr at vi sender meldingen messageName: til objektet (eller klassen) receiver.
Denne mekanismen for meldingsutveksling er en sentral del av Objective-C:s dynamiske natur.
Rask sjekk: Klasser og metoder
Test kunnskapene Deres om grunnleggende objektorientert programmering i Objective-C.
Oppsummering: Klasser, objekter og metoder
Godt jobbet! I denne leksjonen har De lært:
- Hva klasser er (maler), og hva objekter er (instanser).
- Hvordan en klasse deklareres i en
.h-fil og implementeres i en.m-fil. - Hvordan objekter opprettes med
allocoginit. - Forskjellen mellom instansmetoder (
-) og klassmetoder (+). - Hvordan Objective-C bruker meldingsutveksling til å kalle metoder.
Nå er De klar til å bygge mer komplekse og organiserte Objective-C-applikasjoner!
Lær deg Objective-C med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Klasser, objekter og metoder» gratis?
Ja – hele teksten i «Klasser, objekter og metoder» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper inneholder totalt 4 leksjoner.
Hva lærer jeg i «Klasser, objekter og metoder»?
Lær å definere klasser, opprette objekter og implementere instans- og klassemetoder for å kapsle inn atferd. Du øver på Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper?
Ingen tidligere erfaring er nødvendig. Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Klasser, objekter og metoder»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper-leksjonen?
Ja. Alle Objective-C iOS-utvikling for eldre kodebaser og virksomhetsapper-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Klasser, objekter og metoder
- Egenskaper og instansvariabler
- Protokoller og kategorier
- Arv og overstyring av metoder