Programación avanzada en Java Miguel Ángel Corella 16 de Septiembre de 2005.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Unidad 15 Características de C++ no relacionadas con el DOO.
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Características Generales y Entornos de Desarrollo
Curso de java básico (scjp)
Curso de java básico (scjp)
Curso de Java Capitulo 1: Introducción a Java Profesor:
Curso de Java Capitulo 2: Introducción a Java Profesor:
Programación Interactiva Introducción a Java
Curso de JAVA. Iniciando con las Técnologias Java.
Orientación a Objetos con Java SE
Desarrollo de Aplicaciones para Internet
Tema 2: Lenguaje PHP básico
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
Conceptos Básicos de Java
Unit 1: Overview and Positioning
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Tema 6: Clases Antonio J. Sierra.
SCJP Sun Certified Programmer for Java 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
JAVA J.A.C..
Tema 2: Los tipos de datos
Introducción a la Programación. Lenguaje de Máquina.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Sintaxis de C# (Declaraciones y Tipos)
Lenguaje Java Fundamentos del lenguajes de programación
El lenguaje de programación Java.
Curso Programación en Java
Tipo de Datos Básicos.
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
1 Objetos y Clases en Java ELO-329: Diseño y Programación Orientados a Objetos.
Programación avanzada en Java Miguel Ángel Corella 22 de Septiembre de 2005.
Curso de Java La tecnología Java
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Resumen Fundamentos de Programación/ Programación I
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Programación en C para electrónicos
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Seminario de Java Programación Orientada a Objetos.
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
Introducción al lenguaje de programación Java
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
PROGRAMACIÓN MULTIMEDIA
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.

Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Práctica Profesional PHP.
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
Técnicas de Programación en Cliente
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
Conceptos y Lenguaje Imperativo
Elementos básicos.  Fuertemente tipeado.  Sintaxis similar a C/C++.  Sin punteros: garbage collection.  Portable.  Integra librerías para objetos.
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
Java Java Java (1995) fue desarrollado en Sun Microsystems por James Gosling, Bill Joy y Guy Steele Influenciado por C++ Implementa clases, encapsulación,
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Java y JSP Introducción a Java. Reseña histórica  Surge en 1991 por Sun Microsystems  Desarrollado para electrodomésticos  Se buscaba un código neutro.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Taller de Java Universidad de los Andes
Transcripción de la presentación:

Programación avanzada en Java Miguel Ángel Corella 16 de Septiembre de 2005

Información general (I) Profesores: –Miguel Ángel Corella, José María Fuentes y Francisco Saíz. Índice del curso: –Introducción. El lenguaje Java. Programación orientada a objetos en Java. –Jerarquías de clases. –Excepciones. –Applets. –Interfaces de usuario. Miguel Ángel Corella José María Fuentes Francisco Saíz

Información general (y II) Bibliografía: –Core Java 1.2, Volúmenes I – II. C.S. Horstmann, Gary Cornell, Prentice Hall, –Tutorial de Java en

El lenguaje Java

Características principales (I) Lenguaje interpretado. Fuertemente tipado. Sintaxis similar a C/C++. Sin punteros: Garbage collection. 100% portable. Integra librearías estándar para: –Interfaces de usuario. –Objetos distribuidos. –Threads.

Características principales (y II) Ejecutable desde navegadores web. Origen: Aumento de HTML para conseguir páginas Web dinámicas. Versiones: –1995 – JDK 1.0 –1997 – JDK 1.1 –… –2004 – JDK 1.5

Desarrollo en Java Java Development Kit (JDK): –Java Runtime Environment (JRE): Java Virtual Machine. Java API: lenguaje básico y librerías estándar. –Compilador a bytecode. –Otras herramientas: Debuggers. Applet viewer. Compiladores RMI …

Compilación e interpretación class Ejemplo {... } class Aux {... } Ejemplo.java Compilador Java Ejemplo.classAux.class Java Virtual Machine JVM

Comparativa: Java vs. C++ (I) Interpretado Portable Todo memoria dinámica Garbage collection No existen punteros Todos los métodos virtuales No hay herencia múltiple Información sobre clases en tiempo de ejecución. Tratamiento genérico de tipos (wrappers). JavaC++ Compilado Aspectos no portables Memoria automática y dinámica Gestión del programador Existen punteros No todos los métodos virtuales Hay herencia múltiple Información muy escasa (dynamic_cast). Punteros a void.

Comparativa: Java vs. C++ (y II) Soporte estándar para interfaces: AWT, SWING Soporte estándar para concurrencia Soporte estándar para objetos distribuidos Ejecutable en navegadores web Homogeneidad del lenguaje Lenguaje bien diseñado JavaC++ No incluido en el lenguaje: Microsoft MFC, Borland OWL… No incluido en el lenguaje No incluido en el lenguaje: CORBA, ActiveX No ejecutable por navegadores Múltiples sintaxis Compatibilidad con C

Elementos del lenguaje

Aspectos léxicos Ignora múltiples espacios en blanco Sentencias separadas por “;”. Comentarios: –/* … */  Múltiples líneas de comentario –//  Una única línea de comentario Case – sensitive. Convenios de nomenclatura: –Clases con mayúscula. –Métodos y variables con minúscula. –etc…

Valores y variables Tipos básicos: Variables y literales: –Declaración y utilización de variables y literales similar a C/C++. byte1 byte char2 bytes (sin signo, caracteres Unicode, incluyen los ASCII) short2 bytes int4 bytes long8 bytes float4 bytes double8 bytes boolean1 bit (true ó false, no compatible con tipos numéricos)

Compatibilidad entre tipos byte b = 42; char c = 'a'; // también válido: c = 97; short s = 1024; int i = 50000; long l = ; float f = 5.67f; double d =.1234; double result = (f*b) + (i/c) - (d*s); Ensanchar: automático f = c; d = s; f = l; Estrechar: cast explícito c = (char) i; b = (byte) d; f = (float) d; char: cast explícito s = (short) c; c = (char) s; c = (char) b;

Operadores En total hay 46 operadores. –Numéricos: +, -, *, /, %, +=, -=, *=, /=, %=, --, ++ –Lógicos: &&, ||, ! –Operadores de bit: &, |, ^, ~, >>, << –Relacionales: >, =, <=, ==, != –Condicional: If-then-else: (condicion) ? acción1 : acción2

Precedencia de operadores ( )[ ]. ++--~ ! new */% +- >>>>><< >>=<<=instanceof == != & ^ | && || ? : =+=*=-=/= Orden de ejecución de operadores Igualdad de precedencia

Arrays Declaración: int a[]; a = new int[3]; int b[] = {1, 2, 3, 4}; Reserva de tamaño: Asignación de valores: a[1] = 7; b = a; Errores: a[6] = 7;// Fuera del rango a = {1, 2, 3};// Sólo válido en la inicialización int c[5];// La dimensión sólo al hacer new char str[] = “hola”;// Los Strings no son arrays en Java

Arrays multidimensionales float a[][] = new float [4][3]; float m[][] = new float [4][]; m[0] = new float [2]; m[1] = new float [5]; m[2] = new float [m[1].length]; float x[] = {4.5, 8/3, m[2][1]}; m[3] = x; // O cualquier expresión que devuelva un float[] a[0] = m[1]; // Las variables de array no son constantes a[2, 1] = 7.3 // Error de sintaxis: a[2][1]

Expresiones condicionales Dos tipos de condicionales. if (condición1) acción1 [else acción2] [else if (condición2)… switch (expresión) { case valor1: … break; case valor2: … break; default: … } byte, char, short o int Tienen que ser literales

Iteraciones Tres tipos de iteraciones. while (condición1) { … } do { … } while (condición1) for (inicialización; condición; iteración) { … }

Clases y objetos en Java

Clases Estructura de datos + funciones. class CuentaBancaria { long numero; String titular; long saldo; void ingresar (long cantidad) { saldo += cantidad; } void retirar (long cantidad) { if (cantidad > saldo) System.out.println ("Saldo insuficiente"); else saldo -= cantidad; } Variables (datos) Funciones

Variables de una clase Definen una estructura de datos (similar al struct de C) Pueden almacenar objetos de otras clases Por defecto, se inicializan a 0, false y/o null. class CuentaBancaria { long numero; String titular; long saldo; } struct CuentaBancaria { long numero; char *titular; long saldo; }; class CuentaBancaria { long numero; Cliente titular; long saldo = 0; } class Cliente { String nombre; long dni; }

Creación de objetos Una clase define un tipo de dato que se puede utilizar para declarar variables. Declarar un objeto es declarar una referencia al objeto. Los objetos se crean mediante el operador new. Crear un objeto es reservar memoria para sus variables. El operador new reserva memoria y devuelve una referencia. CuentaBancaria cuenta1, cuenta2; cuenta1 = new CuentaBancaria(); CuentaBancaria 0 null 0 numero titular saldo

Acceso a variables El acceso a las variables de un objeto se lleva a cabo mediante la notación “.” CuentaBancaria cuenta1, cuenta2; cuenta1 = new CuentaBancaria (); cuenta2 = cuenta1; Cliente cliente1 = new Cliente (); cliente1.nombre = "Luis Gomez"; cliente1.dni = ; cuenta1.numero = ; cuenta1.titular = cliente1; cuenta1.saldo = ; cuenta2.saldo = ; cuenta2.titular.nombre = "Pilar Garcia";

Métodos Los métodos son funciones definidas dentro de un clase. Son similares a un puntero a función dentro de un struct de C. Los métodos de una clase pueden referenciar directamente las variables de la misma. Los métodos se invocan sobre un objeto de la clase a la que pertenecen mediante la notación “.”. Al ejecutar un método sobre un objeto de la clase X, las variables de dicha clase X toman los valores que tiene el objeto. cuenta2.ingresar(1000);

Llamadas desde métodos Los métodos pueden invocar directamente otros métodos de la misma clase (sin “.”). Al ejecutar un método invocado sobre un objeto de clase A, las llamadas a otros métodos de la clase A se ejecutan sobre el mismo objeto a menos que se invoquen sobre otro objeto cuenta3 = new CuentaBancaria (); cuenta2.transferencia (cuenta3, 1000); class CuentaBancaria {... void transferencia (CuentaBancaria destino, long cantidad) { if (cantidad <= saldo ) { retirar (cantidad); destino.ingresar (cantidad); }

Acceso a objetos class X { String nombre; } class Y { int i; } class Z { String nombre; } class A { int num; X obj4; void f (int n, Y obj3) { Z obj2 = new Z (); obj4.nombre = obj2.nombre num = obj3.i + n; } Variable del objeto de la invocación 2.Objeto definido en variable local 3.Objeto pasado como argumento 4.Objeto almacenado en variable de clase

Constructores Métodos ejecutados automáticamente al crear un objeto de una clase (“new”). Se usan para llevar a cabo labores de inicialización. Simplifican la sintaxis y apoyan el encapsulamiento de los datos. Los métodos constructores de una clase tienen que tener el mismo nombre que la clase. class Cliente { // Constructor de la clase Cliente Cliente (String str, long num) {...; }

Ejemplos de constructores class Cliente { String nombre; long dni; Cliente (String str, long num) { nombre = str; dni = num; } class CuentaBancaria { long numero; Cliente titular; long saldo; CuentaBancaria (long num, Cliente clt, long s) { numero = num; titular = clt; saldo = s; }

Ejemplos de invocación Automáticamente al crear objetos. Cliente cliente1 = new Cliente ("Luis Gomez", ); CuentaBancaria cuenta1 = new CuentaBancaria ( , cliente1, ); CuentaBancaria cuenta2 = new CuentaBancaria ( , new Cliente ("Pilar Garcia", ), );

Constructor por defecto Si no se definen constructores, Java proporciona uno por defecto. –Sin parámetros: Llamadas del tipo new X(); –Sin funcionalidad: Variables inicializadas por defecto. Pero si se define un constructor (o más) el constructor por defecto no es definido.

Programación avanzada en Java Miguel Ángel Corella 16 de Septiembre de 2005