Luokat, oliot ja metodit
Oppikaa määrittämään luokkia, luomaan olioita ja toteuttamaan ilmentymä- ja luokkametodeja toiminnan kapselointia varten.
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;
@endLuokan 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!");
}
@endLuokkien 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- jainit-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!
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
- Luokat, oliot ja metodit
- Ominaisuudet ja ilmentymämuuttujat
- Protokollat ja kategoriat
- Perintä ja metodien ylikirjoittaminen