Objective-C: Malsamoj inter versioj

[nekontrolita versio][nekontrolita versio]
Enhavo forigita Enhavo aldonita
Thijs!bot (diskuto | kontribuoj)
e robot Adding: bg:Objective-C
Yuu eo (diskuto | kontribuoj)
Linio 7:
== Priskribo ==
 
Objective-C estas tre "maldika" nivelo sur C. Fakte, ĝi havas nur unuiujn ŝanĝonŝanĝojn de sintakso (por objektemaj espmrimiloj) kaj ĉirkaŭ deko de novaj terminoj. Tial, C-sciantaj povas lerni la lingvon tre rapide.
 
=== Mesaĝoj ===
 
La ĉefa aldono de sintakso estas la mesaĝoj, kajkiu estas bazita sur [[Smalltalk Komputillingvo|Smalltalk]].
 
Objektemaj programoj konzistas de ''objektoj'' intersendantaj ''mesaĝojn'' -- t.e. invitojn ruli kelkajn ''metodojn''. En Objective-C mesaĝoj aspektas jene:
Linio 17:
[objekto metodo]
 
Ekzemple:
ekzemple
 
cxenLongo = [@"Saluton mondo" length]; // lasendu ĉenomesaĝon "Saluton mondolength" rulual metodonla ĉeno "lengthSaluton mondo"
 
mesaĝojMesaĝoj povas enskatoliĝi kaj aldoniĝi parametrojn malantaŭ dupunktoj, ekzemple
 
[resulto setFloatValue: [kvanto floatValue]*[kurzo floatValue]];
Linio 27:
=== Klasoj ===
 
ProPor krei siajn proprajn tipojn de objektoj oni devas priskribi ilin en ''klasoj''. IliaOni priskribas klasojn per du partoj: la interfaca kaj la realiga. La interfaca parto enhavas priskribon pri stato de objekto de la klaso kaj ĝiaĝiaj kapabloj -- t.e. ĝiaj variabloj kaj metodoj. La sintakso estas la jena:
 
@interface lumilo : Object {
Linio 37:
@end
 
mensLa laparto implementacia''implementation'' parto(realigo) eksplikas, kiekiel la kapabloj efektiviĝu. Tie, oni skribas la kodon de la metodoj, per la jena sintakso:
 
@implementation lumilo
Linio 45:
- agorduLumas: (BOOL) novaStato {
lumas = novaStato;
return self; // ĉi tio permesas enskatolaĝojnĉeni la vokojn al dela malsupremetodoj
}
- init {
Linio 52:
@end
 
objektojObjektoj konstruiĝas sekvetiam, dekiam sendioni sendas la mesaĝon pro ruli ''alloc'' al la klaso. -- Klasoj ankaŭ estas certaj objektoj kun metodoj. -- La mesaĝon ''init'' oni uzas por agordi la komencan staton. Konklude la supre difinita klaso povas uziĝi jene:
 
#include <stdio.h> // uzu norman C-an en/eligon en la ekzemplo
int main () {
{
id objekto; // id signifikas "iu objekto"
objekto = [[[lumilo alloc] init] agorduLumas: YES]; // komplexa enskatolaĝoĉeno de vokoj al metodoj
printf ("La lumilo \"objekto\" %s.", [objekto lumas]?"lumas":"malhelas");
}