¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.
Diferencia entre revisiones de «Objetive-c»
Línea 1: | Línea 1: | ||
− | |||
{{Ficha Software | {{Ficha Software | ||
|nombre= Objective-C | |nombre= Objective-C | ||
Línea 27: | Línea 26: | ||
|web= | |web= | ||
}} | }} | ||
− | <div align="justify"> '''Objective-C''', lenguaje de programación similar a [[C++]], orientado a objetos que desciende de C. Esta descendencia hace que Objective-C sea compatible con las versiones anteriores, haciendo esto que mucha de la sintaxis y características de C estén presentes en Objective-C. | + | <div align="justify"> '''Objective-C''', lenguaje de programación similar a [[C++]], orientado a objetos que desciende de C. Esta descendencia hace que Objective-C sea compatible con las versiones anteriores, haciendo esto que mucha de la sintaxis y características de C estén presentes en Objective-C. |
− | |||
==Características== | ==Características== | ||
− | *Sentencias de control de flujo (if, for, while...) | + | *Sentencias de control de flujo (if, for, while...) |
− | + | *Tipos de datos fundamentales,estructuras y punteros. | |
− | *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. | |
− | *Conversiones implícitas y explícitas entre tipos. | + | *Las funciones y su sintaxis. |
− | |||
− | *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). | *Las directivas del preprocesador (añadiendo Objective-C las suyas, así como las llamadas directivas del compilador). | ||
Línea 45: | Línea 38: | ||
[[Image:Objetive2.jpeg|thumb|left|Objetive C]] | [[Image:Objetive2.jpeg|thumb|left|Objetive C]] | ||
− | |||
*Una característica que diferencie a Objective-C de otros lenguajes (ya no sólo de C++), es su dinamismo, ya que 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. | *Una característica que diferencie a Objective-C de otros lenguajes (ya no sólo de C++), es su dinamismo, ya que 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. | ||
− | *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. | + | *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. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Sintaxis== | ==Sintaxis== | ||
− | + | Objective-C consiste en una capa muy fina situada por encima de C, y además es un estricto superconjunto de C. Esto hace 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. | |
Para escribir el programa clásico "Hola Mundo" para que pueda correr en consola, se puede utilizar el siguiente código: | Para escribir el programa clásico "Hola Mundo" para que pueda correr en consola, se puede utilizar el siguiente código: | ||
Línea 78: | Línea 64: | ||
==Protocolos== | ==Protocolos== | ||
[[Image:Objetive.jpeg|thumb|rightt|Objetive C]] | [[Image:Objetive.jpeg|thumb|rightt|Objetive C]] | ||
− | + | 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 | + | *Artículo: [http://www.macprogramadores.org/?q=content/objective-c Objective-C]. Disponible en: "www.macprogramadores.org". Consultado: 12 de octubre de 2011. |
− | + | *Suárez, Gorka. [http://gorkasg.wordpress.com/2010/04/28/objective-c-para-lerdos/ Objective-C para “lerdos” (que sepan Java o C#)]. Disponible en: "gorkasg.wordpress.com". Consultado: 12 de octubre de 2011. | |
− | *http://gorkasg.wordpress.com/2010/04/28/objective-c-para-lerdos/ | + | *Artículo: [http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/Interfaces/mac/cocoa3_6.html Propiedades]. Disponible en: "sabia.tic.udc.es". Consultado: 12 de octubre de 2011. |
− | |||
− | |||
− | |||
− | *http://sabia.tic.udc.es/gc/Contenidos%20adicionales/trabajos/Interfaces/mac/cocoa3_6.html | ||
− | |||
− | |||
− | |||
− | [[Category:Ciencias_informáticas]] [[Category:Software]] | + | [[Category:Ciencias_informáticas]][[Category:Software]] |
Revisión del 17:49 16 dic 2011
|
Sumario
[ocultar]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 con otros lenguajes
- Una característica que diferencie a Objective-C de otros lenguajes (ya no sólo de C++), es su dinamismo, ya que 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.
- 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.
Sintaxis
Objective-C consiste en una capa muy fina situada por encima de C, y además es un estricto superconjunto de C. Esto hace 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.
Para escribir el programa clásico "Hola Mundo" para que pueda correr en consola, se puede utilizar el siguiente código:
#import <stdio.h> int main( int argc, const char *argv[] ) { printf( "Hola Mundo\n" ); return 0; }
int main( int argc, const char *argv[] ) { NSLog( @"Hola Mundo\n" ); return 0; }
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.
Fuentes
- Artículo: Objective-C. Disponible en: "www.macprogramadores.org". Consultado: 12 de octubre de 2011.
- Suárez, Gorka. Objective-C para “lerdos” (que sepan Java o C#). Disponible en: "gorkasg.wordpress.com". Consultado: 12 de octubre de 2011.
- Artículo: Propiedades. Disponible en: "sabia.tic.udc.es". Consultado: 12 de octubre de 2011.