Objective C (Desarrollo con Apple)



Documentos relacionados
El lenguaje de Programación C. Fernando J. Pereda

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Introducción a Java LSUB. 15 de enero de 2015 GSYC

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Tema: Clases y Objetos en C++.

Curso Introducción JAVA Pág.: 1

Se guardan en archivos con extencion c y los cabezales con extension h

Elementos léxicos del lenguaje de programación Java

Introducción a la Programación Orientada a Objetos

2. Estructura de un programa en Java

El lenguaje de programación Java

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

Java en 2 horas. Rodrigo Santamaría

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Modulo 1 El lenguaje Java

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Tema 2. El lenguaje de programación Java (Parte 1)

FACULTAD DE INGENIERÍA

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Programación Orientada a Objetos con Java

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Computación III. Objetivo de aprendizaje del tema

James Gosling, creador de Java

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Java Inicial (20 horas)

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Programación orientada a objetos

9. Objetos y clases Clases

Sistemas Operativos Práctica 3

Clases y Objetos. Informática II Ingeniería Electrónica

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Tecnología de Programación

Introducción a la programación orientada a objetos

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Tema: Arreglos de Objetos en C++.

Tutorial básico del entorno de desarrollo Eclipse.

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción al lenguaje Java

8. Sentencia return y métodos

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

LENGUAJE. Tema 1 - Introducción

FAMILIARIZANDONOS CON JAVA

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Repaso de las características más importantes de la programación Java y su adaptación a Android

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Fundamentos de la Programación Orientada a Objetos Definición de Clases

Multitarea en Java. Rafa Caballero - UCM

Objetivo de aprendizaje del tema

Universidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA. Número Estudiante:

Esquema de un programa en C: bloques básicos

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Examen escrito de Programación 1

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Universidad de Salamanca. IHM IB y Objective-C. Depto. Informática y Automática Máster en Sistemas Inteligentes Dr. J.R. García-Bermejo Giner

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

10. Algunas clases estándar de Java (I)

Benemérita Universidad Autónoma del Estado de Puebla

TÉCNICAS DE PROGRAMACIÓN Lenguaje Java. Introducción a Java Daniel Finol

TEMA 2. Agenda. Fundamentos de JAVA

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Fundamentos de Programción (I)

Fundamentos del Lenguaje de Programación Java

Programación Orientada a Objetos en JAVA

Introducción al lenguaje de programación java

Caso práctico Alquiler de películas en un vídeo-club

Java es el lenguaje de programación que

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes.

2.1. Introducción al lenguaje Java

Carmen. Estándares de codificación. Manuel Arias Calleja

Prof. Dr. Paul Bustamante

Algunas características de los lenguajes de programación orientados a objetos son:

Ubicación e historia

Ejercicios del tema 7: Clases y objetos

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

1. Qué tipos de relación hay entre las siguientes clases?

Clases y objetos. Objeto Instancia de una clase: Unidad atómica que encapsula estado y comportamiento.

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

La clase estándar Scanner

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

Prof. Dr. Paul Bustamante

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

Transcripción:

1 Objective C (Desarrollo con Apple) para programación en Iphone SDK: Similitudes y Diferencias entre Objective C con C/C++ y Java Dr. Moisés Alencastre Miranda, malencastre@itesm.mx

2 Introducción al IPhone SDK Oficialmente, sólo se pueden programar aplicaciones en IPad, IPhone y Ipod Touch con: Sistema Operativo Mac OS X (10.5. Leopard en adelante). Lenguaje de Programación Objective C. IDE (Integrated Development Environment) Xcode (3.0 en adelante) http://developer.apple.com/technologies/tools/xcode.html IPhone SDK Inicia en Marzo del 2008. Incluye Xcode. Versión previa 3.2 (Abril, 2010). Última versión 4.0 (Junio 2010). http://developer.apple.com/iphone/index.action

3 Los archivos con código fuente deben llevar cierta extensión: En Java:.java En C/C++:.h,.c y.cpp En Objective C:.h y.m Objective C es orientado a objetos: Similar a Java y C++ en el manejo de clases, objetos, variables globales (atributos), métodos (llamadas operaciones), propiedades get y set, herencia, polimorfismo, encapsulamiento, etc, pero se implementa de diferente forma. No existe un constructor como tal. La sintáxis es muy diferente a C/C++ y Java. Pero se puede incluir código de lenguaje C dentro de Objective

4 Todas las estructuras de control son iguales a Java y C/C++: if (el if, else), for, while, switch, do (while). Todos los operadores son iguales a Java y C/C++: +,, *, /, =, %, ++,, +=, =, *=, /=,!=, ==, <, > <=, >=, etc. Los tipos de datos básicos de C son iguales, los demás varían: int, float, double, char, short int, unsigned int, long int, unsigned short int, unsigned long int, long double. En Objective C, el tipo de dato void se llama id. La palabra reservada null es nil. El tipo de dato bool de C/C++ o boolean de Java cambia en Objective C por BOOL. Y las palabras reservadas true y false cambian por YES y NO.

5 Para cargar librerías, clases o archivos en el proyecto se usa: En Java: import ruta.subruta.clase; import java.util.vector; import java.util.*; En C/C++: #include <ruta/archivodelsistema.h> #include <stdio.h> #include ruta/miarchivo.h En Objective C: Se pueden utilizar los archivos.h de lenguaje C pero con import. #import <ruta/archivodelsistema.h> #import <UIKit/UIKit.h> #import ruta/miarchivo.h

6 El main: En Java: public static void main (String args[]){... } En C/C++: int main(int argc, char **argv){... } En Objective C: Igual que en C/C++. int main(int argc, char *argv[]) {... }

7 Para escribir en pantalla se utiliza: En Java: System.out.print( Hola ); System.out.println( Hola ); System.out.println( Hola +varint+, +varfloat+, +varstring); En C/C++: cout << Hola << endl; cout << Hola\n ; Cout << Hola << varint <<, << varfloat <<, << varstring << endl; printf( Hola %d, %f, %s\n, varint, varfloat, varcadenachars ); En Objective C: NSLog(@ Hola ); NSLog(@ %@, varstring); NSLog(@ Hola %d, %f, %@, varint, varfloat, varstring );

8 Los comentarios dentro del código son igual que en Java y C/C++: En una línea. // Comentario simple. Delimitados. /* Este es un método que recibe un par de datos y regresa su multiplicación */ Para funciones y clases. Estándar para generación de comentarios. /** Este es un método que recibe * un par de datos y regresa su * multiplicación */

9 La estructura general de una clase cambia mucho aunque sigue la ideología de separar en 2 archivos como en C++: En Java:... // Los import necesarios public class MiClase extends ClasePadre { // Mis variables globales normalmente private o protected private tipodato variable; // Aquí se puede poner el Constructor y/o Destructor. public MiClase ( parámetros... ) {... } // Mis métodos de propiedades set y get. // Mis métodos implementados, se indica si son public, private public tipodato mimetodo( parámetros... ) {... // código }... // etc }

10 En C/C++, archivo.h o encabezado con la definición de la clase:... // Los include necesarios. Y los using necesarios. class MiClase : public MiClasePadre { private:... // Defino mis variables globales dentro de las secciones private, etc. public:... // Aquí se puede poner el encabezado o prototipo del Constructor/Destructor. O puedo implementarlos aquí si son cortos.... // Defino los encabezados o prototipos de mis métodos de propiedades set y get. O puedo implementarlos aquí. // Defino solamente los encabezados o prototipos de mis métodos. tipodato mimetodo( parámetros... );... // etc };

11 En C/C++, archivo.cpp con la implementación de los métodos: // El include de mi archivo.h con la definición de la clase #include MiClase.h // Implementación de todos los métodos sólo definidos en el archivo.h tipodato MiClase::miMetodo( parámetros... ) {... // Código de implementación. }... // Más métodos.

12 En Objective C, archivo.h con la definición de la clase:... // Los import necesarios. @interface MiClase : MiClasePadre { int mivalint;... // Defino mis variables globales. NSString *mistring; } // No se puede de forma fácil definir private y protected... // Defino los encabezados de mis métodos de propiedades set/get. @property (readonly) NSString *_palabramostrada;... // Defino los encabezados o prototipos de mis métodos. (tipodato) mimetodo: parametros; (BOOL) enviarstr: (NSString *) mistr; //Ejemplo @end

13 En Objective C/C, archivo.m con la implementación de los métodos: #import MiClase.h // El include de mi archivo.h con la definición de la clase @implementation MiClase @synthesize mivar; // Este es necesario por cada get y set....// Implementación de todos los métodos definidos en el archivo.h (tipodato) mimetodo: parametros { }... // Código de implementación. (BOOL) enviarstr: (NSString *) mistr {... } // Ejemplo @end

14 La instancia de objetos y ejecución de métodos es diferente: En Java: MiClase miobjeto = new MiClase( parámetros... ); miobjeto.mimetodo( parámetros... ); En C/C++: MiClase *miobjeto = new MiClase( parámetros... ); miobjeto >mimetodo( parámetros... ); En Objective C (no lleva paréntesis en los métodos): MiClase *miobjeto; miobjeto = [[MiClase alloc] init]; // Para inicializar [miobjeto mimetodo: parámetros ]; // Para ejecutar ese método. [miobjeto mimetodo: [otroobjeto otrometodo]]; [miobjeto release]; // Para liberar memoria

15 Ver los ejemplos y presentaciones del curso CADI para mayor detalle. Recomendación: tener al menos un libro a la mano de: Objective C Xcode Stephen G. Kochan. Programming in Objective C 2.0. Addison Wesley, 2 nd edition. 2009. James Bucanek. Professional Xcode 3. Wrox. 2010. IPhone SDK Jonathan Zdziarski. IPhone SDK, O'REILLY. 2009.