Diferencia entre revisiones de «Objetive-c»
(Página creada con '{{Ficha desarrollo |nombre= Objective-C |familia= |imagen= |tamaño= |descripción= El lenguaje Objective-C es un lenguaje de programación sencillo diseñado para permitir ...') |
|||
| Línea 1: | Línea 1: | ||
| − | {{Ficha | + | {{Ficha Software |
|nombre= Objective-C | |nombre= Objective-C | ||
|familia= | |familia= | ||
| − | |imagen= | + | |imagen=Objetive1.png |
|tamaño= | |tamaño= | ||
|descripción= El lenguaje Objective-C es un lenguaje de programación sencillo diseñado para permitir a sofisticados programación orientada a objetos. | |descripción= El lenguaje Objective-C es un lenguaje de programación sencillo diseñado para permitir a sofisticados programación orientada a objetos. | ||
| Línea 26: | Línea 26: | ||
|web= | |web= | ||
}} | }} | ||
| − | <div align="justify"> '''Objective-C''' es, cómo C++, un lenguaje orientado a objetos que desciende de C. Esta descendencia hace que Objective-C sea compatible hacia atrás, haciendo esto que mucha de la sintaxis y características de C estén presentes en Objective-C. </div> | + | <div align="justify"> '''Objective-C''' es, cómo [[C++]], un lenguaje orientado a objetos que desciende de C. Esta descendencia hace que Objective-C sea compatible hacia atrás, haciendo esto que mucha de la sintaxis y características de C estén presentes en Objective-C. </div> |
<br> | <br> | ||
==Características== | ==Características== | ||
| Línea 35: | Línea 35: | ||
*Conversiones implícitas y explícitas entre tipos. | *Conversiones implícitas y explícitas entre tipos. | ||
| − | *El ámbito de las variables:Global, estáticas o locales. | + | *El ámbito de las [[variables]]:Global, estáticas o locales. |
*Las funciones y su sintaxis. | *Las funciones y su sintaxis. | ||
| Línea 42: | Línea 42: | ||
==Diferencias entre otros lenguajes== | ==Diferencias entre otros lenguajes== | ||
| − | |||
| + | [[Image:Objetive2.jpeg|thumb|left|Objetive C]] | ||
<div align="justify">Una característica que diferencie a Objective-C de otros lenguajes (ya no sólo de C++), ésta sería su dinamismo, en el sentido de que Objective-C es un lenguaje marcadamente dinámico. Muchas de las decisiones que otros lenguajes toman en tiempo de compilación, Objective-C las toma en tiempo de ejecución. | <div align="justify">Una característica que diferencie a Objective-C de otros lenguajes (ya no sólo de C++), ésta sería su dinamismo, en el sentido de que Objective-C es un lenguaje marcadamente dinámico. Muchas de las decisiones que otros lenguajes toman en tiempo de compilación, Objective-C las toma en tiempo de ejecución. | ||
En Objective-C, a diferencia de C++, los objetos siempre se crean en memoria dinámica. | En Objective-C, a diferencia de C++, los objetos siempre se crean en memoria dinámica. | ||
| − | |||
Los atributos de una clase no tienen por que estar tipificados estáticamente. | Los atributos de una clase no tienen por que estar tipificados estáticamente. | ||
| − | |||
Objective-C dispone de un gran número de características avanzadas como pueden ser los protocolos, las categorías, extensiones, el Key-Value Coding, el Key-Value Observing, la gestión de memoria y el recolector de basura, la gestión de excepciones. </div> | Objective-C dispone de un gran número de características avanzadas como pueden ser los protocolos, las categorías, extensiones, el Key-Value Coding, el Key-Value Observing, la gestión de memoria y el recolector de basura, la gestión de excepciones. </div> | ||
<br> | <br> | ||
| + | <br> | ||
| + | |||
| + | |||
==Entornos orientados a objetos de desarrollo== | ==Entornos orientados a objetos de desarrollo== | ||
*Una biblioteca de objetos | *Una biblioteca de objetos | ||
| Línea 56: | Línea 57: | ||
*Un entorno de ejecución | *Un entorno de ejecución | ||
*Una programación orientada a objetos del lenguaje | *Una programación orientada a objetos del lenguaje | ||
| + | |||
==Sintaxis== | ==Sintaxis== | ||
| − | <div align="justify">Objective-C consiste en una capa muy fina situada por encima de C, y además es un estricto superconjunto de C. Esto es, es posible compilar cualquier programa escrito en C con un compilador de Objective-C, y también puede incluir libremente código en C dentro de una clase de Objective-C. | + | <div align="justify">Objective-C consiste en una capa muy fina situada por encima de C, y además es un estricto superconjunto de C. Esto es, es posible compilar cualquier programa escrito en C con un compilador de Objective-C, y también puede incluir libremente código en C dentro de una clase de Objective-C. </div> |
| − | |||
| − | #import <stdio.h> | + | Esto es, para escribir el programa clásico "Hola Mundo" para correren consola, se puede utilizar el siguiente código: |
| − | int main( int argc, const char *argv[] ) { | + | |
| − | + | #import <stdio.h> | |
| − | + | int main( int argc, const char *argv[] ) { | |
| − | } | + | printf( "Hola Mundo\n" ); |
| + | return 0; | ||
| + | } | ||
| + | |||
| + | <div align="justify">El código anterior se diferencia de un código en C común por la primera instrucción #import, que difiere del #include del C clásico,pero la función printf("") es puramente C. La función propia de Objective-C para imprimir una cadena de caracteres en consola esNSLog(@""); utilizándola, el código anterior quedaría de la siguientemanera:</div> | ||
| + | |||
| + | int main( int argc, const char *argv[] ) | ||
| + | { | ||
| + | NSLog( @"Hola Mundo\n" ); | ||
| + | return 0; | ||
| + | } | ||
| + | <div align="justify">La sintaxis de objetos de Objective-C deriva de [[Smalltalk]]. Toda la sintaxis para las operaciones no orientadas a objetos(incluyendo variables primitivas, pre-procesamiento, expresiones,declaración de funciones y llamadas a funciones) son idénticas a las de C, mientras que la sintaxis para las características orientadas a objetos es una implementación similar a la mensajería de Smalltalk.</div> | ||
==Protocolos== | ==Protocolos== | ||
| − | <div align="justify">Objective-C fue extendido en NeXT para introducir el concepto de herencia múltiple de la especificación, pero no la implementación, a través de la introducción de protocolos. Este es un modelo viable, ya sea como una clase base abstracta multi-heredada en C++, o como una "interfaz" (como en Java o C#). Objective-C hace uso de protocolos ad-hoc, llamados protocolos informales, y el compilador debe cumplir los llamados protocolos formales. | + | [[Image:Objetive.jpeg|thumb|rightt|Objetive C]] |
| + | <div align="justify">Objective-C fue extendido en [[NeXT]] para introducir el concepto de herencia múltiple de la especificación, pero no la implementación, a través de la introducción de protocolos. Este es un modelo viable, ya sea como una clase base abstracta multi-heredada en C++, o como una "interfaz" (como en [[Java]] o C#). Objective-C hace uso de protocolos ad-hoc, llamados [[protocolos]] informales, y el compilador debe cumplir los llamados protocolos formales. | ||
==Fuentes== | ==Fuentes== | ||
| − | http://www.macprogramadores.org/?q=content/objective-c | + | *http://www.macprogramadores.org/?q=content/objective-c |
| − | http://gorkasg.wordpress.com/2010/04/28/objective-c-para-lerdos/ | + | |
| − | http://www.macprogramadores.org/?q=content/objective-c | + | *http://gorkasg.wordpress.com/2010/04/28/objective-c-para-lerdos/ |
| − | http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/Interfaces/mac/cocoa3_6.html | + | |
| + | *http://www.macprogramadores.org/?q=content/objective-c | ||
| + | |||
| + | *http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/Interfaces/mac/cocoa3_6.html | ||
Revisión del 13:28 12 oct 2011
| ||||||||
Objective-C es, cómo C++, un lenguaje orientado a objetos que desciende de C. Esta descendencia hace que Objective-C sea compatible hacia atrás, haciendo esto que mucha de la sintaxis y características de C estén presentes en Objective-C.
Sumario
Características
- Sentencias de control de flujo (if, for, while...)
- Tipos de datos fundamentales,estructuras y punteros.
- Conversiones implícitas y explícitas entre tipos.
- El ámbito de las variables:Global, estáticas o locales.
- Las funciones y su sintaxis.
- Las directivas del preprocesador (añadiendo Objective-C las suyas, así como las llamadas directivas del compilador).
Diferencias entre otros lenguajes
Una característica que diferencie a Objective-C de otros lenguajes (ya no sólo de C++), ésta sería su dinamismo, en el sentido de que Objective-C es un lenguaje marcadamente dinámico. Muchas de las decisiones que otros lenguajes toman en tiempo de compilación, Objective-C las toma en tiempo de ejecución.
En Objective-C, a diferencia de C++, los objetos siempre se crean en memoria dinámica. Los atributos de una clase no tienen por que estar tipificados estáticamente.
Objective-C dispone de un gran número de características avanzadas como pueden ser los protocolos, las categorías, extensiones, el Key-Value Coding, el Key-Value Observing, la gestión de memoria y el recolector de basura, la gestión de excepciones.
Entornos orientados a objetos de desarrollo
- Una biblioteca de objetos
- Una suite de herramientas de desarrollo
- Un entorno de ejecución
- Una programación orientada a objetos del lenguaje
Sintaxis
Objective-C consiste en una capa muy fina situada por encima de C, y además es un estricto superconjunto de C. Esto es, es posible compilar cualquier programa escrito en C con un compilador de Objective-C, y también puede incluir libremente código en C dentro de una clase de Objective-C.
Esto es, para escribir el programa clásico "Hola Mundo" para correren consola, se puede utilizar el siguiente código:
#import <stdio.h>
int main( int argc, const char *argv[] ) {
printf( "Hola Mundo\n" );
return 0;
}
El código anterior se diferencia de un código en C común por la primera instrucción #import, que difiere del #include del C clásico,pero la función printf("") es puramente C. La función propia de Objective-C para imprimir una cadena de caracteres en consola esNSLog(@""); utilizándola, el código anterior quedaría de la siguientemanera:
int main( int argc, const char *argv[] )
{
NSLog( @"Hola Mundo\n" );
return 0;
}
La sintaxis de objetos de Objective-C deriva de Smalltalk. Toda la sintaxis para las operaciones no orientadas a objetos(incluyendo variables primitivas, pre-procesamiento, expresiones,declaración de funciones y llamadas a funciones) son idénticas a las de C, mientras que la sintaxis para las características orientadas a objetos es una implementación similar a la mensajería de Smalltalk.
Protocolos
Objective-C fue extendido en NeXT para introducir el concepto de herencia múltiple de la especificación, pero no la implementación, a través de la introducción de protocolos. Este es un modelo viable, ya sea como una clase base abstracta multi-heredada en C++, o como una "interfaz" (como en Java o C#). Objective-C hace uso de protocolos ad-hoc, llamados protocolos informales, y el compilador debe cumplir los llamados protocolos formales.
