Introducere in Objective C

Introducere

  • Objective C este un limbaj realizat în special pentru paradigma de programare orientată pe obiect.
  • Objective C este alcătuit practic dintr-o serie de extensii şi biblioteci aduse limbajului C.
  • Objective C este limbajul principal pentru realizarea de software pentru Mac şi iOS.

Cuprins

Cum definesc o metoda?

Sintaxa pentru definirea unei metode în Objective C este următoarea:

-(int) sumaNumarului: (int) numar1 cuNumarul:(float)numar2;

Minusul din fata semnifică faptul că este o metodă a unei instanţe. O astfel de metodă se apelează folosind instanţa unei clase. Cealaltă alternativă este cu “plus” şi semnifică metoda unei clase şi se apelează folosind clasa.

+ (int) sumaNumarului: (int) numar1 cuNumarul:(float)numar2;

Tipul valorii returnată de metodă este specificat între paranteze rotunde, în acest caz (int). Parametrii primiţi de funcţie sunt (int)numar1 şi (float)numar2. De observat că parametrii sunt interclasaţi cu numele funcţiei. Numele funcţiei este: sumaNumarului: cuNumarul:. S-a stabilit astfel numirea metodelor pentru o claritate mai mare a codului. Dacă am avea o metodă ca ceea de mai jos, în momentul în care o apelăm ştim exact fiecare parametru ce este.

- (void) calculeazaMedieCuNotele:(NSArray *)note siCuTeza:(int)teza  inSemestrul:(int)semestru

Numele acestei funcţii este: calculeazaMedieCuNotele: siCuTeza: inSemestrul:.

Cum apelez o metodă?

Am învăţat să scriem o metodă, dar cum o apelăm? Sintaxa este următoarea:

int x = [calculator sumaNumarului:5 cuNumarul:6];

Apelul de metodă se face între paranteze pătrate [ … ]. Primul cuvânt este obiectul (sau clasa) căruia îi trimitem mesajul (în acest caz, “calculator”). Apoi urmează numele metodei. Mai ţineti minte metoda asta?

- (int) sumaNumarului: (int) numar1 cuNumarul:(float)numar2}}}

Care era numele ei? Răspuns: sumaNumarului: cuNumarul:.

Practic, trimitem la obiectul “calculator” mesajul “fă-mi suma numărului 5 cu numărul 6”. După cum puteţi vedea sintaxa limbajului Objective C se aproprie foarte mult de limbajul natural.

Dacă metoda ar fi fost metoda unei clase, trimiteam mesajul clasei, nu obiectului.

int y = [ClasaCalculator sumaNumarului:5 cuNumarul:6];

Cum este definită o clasa?

O clasă este reprezentată prin 2 fişiere: un fişier cu extensia “.h” şi un fişier cu extensia “.m”

Fişierul “.h”

#import <UIKit/UIKit.h>
 
@interface CalcViewController : UIViewController
{
 
}
 
- (int) sumaNumarului: (int) numar1 cuNumarul:(int)numar2;
 
@end
  • se importă framework-ul “UIKIT” care este esenţial pentru majoritatea claselor
  • sintaxa @interface CalcViewController : UIViewController se traduce prin: “Clasa cu numele “CalcViewController” mostenește clasa “UIViewController”;
  • între acolade se scriu variabilele publice de instanţă. Toate aceste variabile sunt vizibile din exterior.
  • - (int) sumaNumarului: (int) numar1 cuNumarul:(int)numar2; reprezintă o metodă a clasei CalcViewController
  • Practic, într-un fisier .h este definit API-ul clasei. Se definesc toate variabilele şi metodele vizibile din exterior.

Fisierul “.m”

#import CalcViewController.h
 
@interface CalcViewController()
{
 
}
 
@implementation CalcViewController
 
- (int) sumaNumarului: (int) numar1 cuNumarul:(int)numar2
{
     return numar1 + numar2;
}
 
@end

Să observam ce se petrece aici.

  • se importă fisierul “.h” (headerul)
  • în interiorul construcţiei @interface CalcViewController() {…} @end se definesc variabilele private ale unei clase.
  • în interiorul construcţiei @implementation CalcViewController … @end are loc implementarea metodelor
programare_ios/curs/curs2.txt · Ultima modificare: 2013/07/21 13:08 de către bogdan.vlad
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0