Objective-C
Z Wikipedie, otevřené encyklopedie
Objective-C, často nazývaný ObjC, je objektově orientovaný programovací jazyk implementovaný jako rozšíření jazyka C. V současné době je používán v operačním systému Mac OS X a GNU projektu GNUstep. Obě prostředí jsou založena na standardu OpenStep.
Objective-C byl původně vyvinut jako hlavní programovací jazyk pro počítače NeXT s operačním systémem NeXTSTEP. Počítače NeXT už se nevyrábějí, ale myšlenka softwarového prostředí přetrvala ve standardu OpenStep.
Kompilátor tohoto jazyka je součástí kolekce kompilátorů GCC.
Obsah |
[editovat] Historie
Brad Cox vyvinul Objective-C ve společnosti Stepstone počátkem osmdesátých let minulého stoleti.
[editovat] Základy jazyka
Objective-C je nadmnožinou jazyka C. Díky tomu je možné přeložit libovolný program jazyka C kompilátorem Objective-C.
[editovat] Nové datové typy
- BOOL
- Class // v podsatě totéž co id a je s ním zaměnitelný. Pouze umožňuje lepší typovou kontrolu při překladu
- id
- IMP
- SEL
[editovat] Zprávy
Syntaxe posílání zpráv (volání metod) objektům je odvozena ze syntaxe jazyka Smalltalk na rozdíl od C++, které vychází z jazyka Simula 67.
[příjemce zpráva]
Tímto způsobem je možné volat metodu na instanci, statickou metodu na třídě nebo metodu na přímém předkovi pomocí klíčového slova super. Každá instance disponuje proměnou self, což je ukazatel na sebe sama ekvivalentní this z C++.
[editovat] Rozšíření možností preprocesoru
Je přidán jednořádkový komentář.
Direktiva #import je pohodlnější verze #include, která zabrání opakovanému vložení hlavičkového souboru.
[editovat] Rozhraní a Implementace
Objective-C vyžaduje oddělení rozhraní a implementace do samostatných bloků, eventuelně souborů.
[editovat] Rozhraní
Rozhraní třídy je obvykle definováno v hlavičkovém souboru. Je dobrým zvykem pojmenovat soubor dle třídy kterou definuje. V případě jednoduchých tříd není nutné.
Obecný tvar rozhraní
@interface jméno_třídy : předek { proměnné instance } + metoda třídy + metoda třídy ... - metoda instance - metoda instance ... @end
[editovat] Implementace
Vlastní těla metod se nacházejí v bloku implementace. Přípona souboru s implementací je „.m“.
@implementation jméno_třídy + metoda třídy { /* implementation */ } - metoda instance { /* implementation */ } ... @end
[editovat] Protokol
Protokol definuje pouze hlavčky metod, které musi třída implementovat. Tímto postupem lze vynutit stejné stejné chování u nepříbuzných tříd.
@protocol Protokol_1 - metoda; @end
@interface Třída : Rodič <Protokol_1, Protokol_2,... > ... @end
Programovací jazyky | |||
ABAP | Ada | AWK | Assembler | C | C++ | C# | COBOL | ColdFusion | Clean | D | Eiffel | Erlang | Flex | Fortran | JADE | Java | JavaScript | Lisp | Lua | Oberon | Object Pascal | Objective-C | Pascal | Perl | PHP | Python | REALbasic | REBOL | RPG | Ruby | SQL / PL/SQL | Tcl / Tcl/Tk | Visual Basic / VBScript | VB.NET | Visual FoxPro
|