Objective-C: Malsamoj inter versioj

[nekontrolita versio][nekontrolita versio]
Enhavo forigita Enhavo aldonita
WikitanvirBot (diskuto | kontribuoj)
e r2.7.1) (robota aldono de: ta:ஒப்செக்டிவ் சி
(diskuto | kontribuoj)
syntaxhighlight http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi
Linio 14:
 
Objektemaj programoj konzistas de ''objektoj'' intersendantaj ''mesaĝojn'' -- t.e. invitojn ruli kelkajn ''metodojn''. En Objective-C mesaĝoj aspektas jene:
<syntaxhighlight lang="objc">
 
[objekto metodo]
</syntaxhighlight>
 
Ekzemple:
<syntaxhighlight lang="objc">
 
cxenLongo = [@"Saluton mondo" length]; // sendu mesaĝon "rulu metodon length" al la ĉeno "Saluton mondo"
</syntaxhighlight>
 
Mesaĝoj povas enskatoliĝi kaj aldoniĝi parametrojn malantaŭ dupunktoj, ekzemple
<syntaxhighlight lang="objc">
 
[resulto setFloatValue: [kvanto floatValue]*[kurzo floatValue]];
</syntaxhighlight>
 
=== Klasoj ===
 
Por krei siajn proprajn tipojn de objektoj oni devas priskribi ilin en ''klasoj''. Oni priskribas klasojn per du partoj: la interfaca kaj la realiga. La interfaca parto enhavas priskribon pri stato de objekto de la klaso kaj ĝiaj kapabloj -- t.e. ĝiaj variabloj kaj metodoj. La sintakso estas la jena:
<syntaxhighlight lang="objc">
 
@interface lumilo : Object {
BOOL lumas; // statuso
Linio 36:
- init; // agordu komencan staton
@end
</syntaxhighlight>
 
La parto ''implementation'' (realigo) eksplikas, kiel la kapabloj efektiviĝu. Tie, oni skribas la kodon de la metodoj, per la jena sintakso:
<syntaxhighlight lang="objc">
 
@implementation lumilo
- (BOOL) lumas {
Linio 51:
}
@end
</syntaxhighlight>
 
Objektoj konstruiĝas tiam, kiam oni sendas la mesaĝon ''alloc'' al la klaso. Klasoj ankaŭ estas objektoj kun metodoj. La metodon ''init'' oni alvokas por agordi la komencan staton. Konklude la supre difinita klaso povas uziĝi jene:
<syntaxhighlight lang="objc">
 
#include <stdio.h> // uzu norman C-an en/eligon en la ekzemplo
int main ()
Linio 61:
printf ("La lumilo \"objekto\" %s.", [objekto lumas]?"lumas":"malhelas");
}
</syntaxhighlight>
 
== Eksteraj ligoj ==