Objective-C iOS-kehitys vanhoille ja yrityssovelluksille · Oppitunti

Luokat, oliot ja metodit

Oppikaa määrittämään luokkia, luomaan olioita ja toteuttamaan ilmentymä- ja luokkametodeja toiminnan kapselointia varten.

Oppitunti 1/411 vaihetta

Luokat, oliot ja metodit on ilmainen Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-kurssilla on yhteensä 4 oppituntia.

Olio-ohjelmoinnin perusteet: luokat ja objektit

Tervetuloa Objective-C:n olio-ohjelmointiin (OOP)! OOP auttaa järjestämään koodin uudelleenkäytettäviksi malleiksi, joita kutsutaan luokiksi.

Näiden mallien pohjalta luomme yksittäisiä kohteita, joita kutsutaan objekteiksi. Ajatelkaa luokkaa piparkakkumuottina ja objektia piparkakkuna!

Ensimmäinen luokkanne: otsikkotiedosto

Jokaisella Objective-C-luokalla on kaksi pääasiallista tiedostoa: .h- (otsikko) ja .m-toteutustiedosto.

Otsikkotiedostossa (.h) määritellään, mitä luokka on ja mitä se osaa tehdä. Se toimii julkisena mallina.

Näin määritellään yksinkertainen Person-luokka:

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

@interface Person : NSObject

// Method declaration
- (void)sayHello;

@end

Luokan toteutus: lähdetiedosto

Toteutustiedosto (.m) sisältää varsinaisen koodin, joka saa luokan toimimaan. Siinä määritellään otsikossa ilmoitettu toiminta.

Tässä toteutamme sayHello-metodin Person-luokalle:

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

@implementation Person

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

@end

Luokkien herättäminen eloon: objektit

Kun Person-luokka on valmis, luodaan siitä objekti! Objektin luomista kutsutaan myös instansioinniksi.

Objective-C:ssä uusia objekteja luodaan alloc- ja init-metodeilla. alloc varaa muistia ja init alustaa objektin.

Kokeilkaa ajaa tämä esimerkki:

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

Instanssimetodit: objektien toiminnot

Instanssimetodit ovat toimintoja, joita yksittäinen objekti voi suorittaa. Ne käsittelevät yleensä kyseiseen objektiin liittyviä tietoja.

Kun haluatte objektin suorittavan toiminnon, lähetätte sille viestin. Syntaksi on [object methodName];.

Tehdään person1-objektistamme tervehtivä:

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

Argumentteja käyttävät metodit

Metodit voivat vastaanottaa myös argumentteja (eli parametreja), joilla niiden toimintaa mukautetaan. Objective-C käyttää metodien argumenteille ainutlaatuista syntaksia, joka tekee metodeista hyvin kuvaavia.

Ensimmäinen argumentti on osa metodin nimeä, ja seuraavat argumentit merkitään nimilapuilla.

Lisätään Person-luokkaamme metodi, joka vastaanottaa nimen:

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

Luokkametodit: tyypin toiminnot

Toisin kuin instanssimetodit, luokkametodit (joita kutsutaan myös staattisiksi metodeiksi) kuuluvat itse luokalle, eivät tietylle objektille.

Niiden määrittely ja toteutus alkavat merkillä +. Niitä kutsutaan suoraan luokan nimestä, esimerkiksi [ClassName methodName];.

Luokkametodeja käytetään usein objektien luomiseen tai luokkaan liittyviin apufunktioihin.

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

Luokka vai instanssi: keskeinen ero

Tässä lyhyt yhteenveto tärkeimmistä eroista:

  • Instanssimetodit (-): Käsittelevät tietyn objektin tietoja. Niiden kutsumiseen tarvitaan objektin instanssi.
  • Luokkametodit (+): Käsittelevät itse luokkaa, eivät instanssia. Niitä kutsutaan suoraan luokan nimestä. Niillä ei ole pääsyä instanssimuuttujiin.

Valitkaa oikea tyyppi sen perusteella, tarvitseeko toiminto tietyn objektin tietoja vai yleistä luokkaan liittyvää toiminnallisuutta.

Viestien lähettäminen Objective-C:ssä

Objective-C:ssä metodin kutsumista kutsutaan muodollisesti viestin lähettämiseksi objektille (tai luokalle).

Syntaksi [receiver messageName:argument]; tarkoittaa, että receiver-objektille (tai -luokalle) lähetetään viesti messageName:.

Tämä viestien lähettämismekanismi on keskeinen osa Objective-C:n dynaamista luonnetta.

Nopea tarkistus: luokat ja metodit

Testatkaa tietonne Objective-C:n olio-ohjelmoinnin perusteista.

Kertaus: luokat, objektit ja metodit

Hienoa työtä! Tässä oppitunnissa opitte:

  • mitä luokat (mallit) ja objektit (instanssit) ovat.
  • miten luokka määritellään .h-tiedostossa ja toteutetaan .m-tiedostossa.
  • miten objekteja luodaan alloc- ja init-metodeilla.
  • mitä eroa on instanssimetodeilla (-) ja luokkametodeilla (+).
  • miten Objective-C käyttää viestien lähettämistä metodien kutsumiseen.

Nyt olette valmiita rakentamaan monimutkaisempia ja järjestelmällisempiä Objective-C-sovelluksia!

Aloita maksutta

Opi Objective-C tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Luokat, oliot ja metodit” ilmainen?

Kyllä – oppitunnin ”Luokat, oliot ja metodit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-kurssin, päivitä CoddyKit PROhon. Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Luokat, oliot ja metodit”?

Oppikaa määrittämään luokkia, luomaan olioita ja toteuttamaan ilmentymä- ja luokkametodeja toiminnan kapselointia varten. Harjoittelet Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Luokat, oliot ja metodit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-oppitunnilla?

Kyllä. Jokainen Objective-C iOS-kehitys vanhoille ja yrityssovelluksille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Luokat, oliot ja metodit
  2. Ominaisuudet ja ilmentymämuuttujat
  3. Protokollat ja kategoriat
  4. Perintä ja metodien ylikirjoittaminen
← Takaisin: Objective-C iOS-kehitys vanhoille ja yrityssovelluksille