Download color - DCIC - Universidad Nacional del Sur
Document related concepts
no text concepts found
Transcript
© DCM-DCIC-UNS 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur Historia de Java Java, 10 años - JavaOne Conference 26 al 30 de junio de 2005 1991 Comienza el proyecto Green. 1992 Se presenta el lenguaje Oak. 1995 Nace oficialmente la tecnología Java. Cambia el nombre de "Oak" a "Java" 1996 Primera Conferencia JavaOne Developer. JDKtm 1.0 software released 1997 Mas de 220,000 downloads de JDK 1.1 software en solo tres semanas. JavaOne fue la conferencia de desarrolladores más grande del mundo. 1998 Downloads JDK 1.1 = 2 millones. The Java Community Process (JCP) program formalized 1999 Se presenta la plataforma Java 2. J2EE beta software released. 2000 Java Developer Connection program = 1.5 millones miembros. Apple apoya la tecnologia Java. 2001 Primera conferencia JavaOne internacional en Yokohama Japan. Mas 1 millón de downloads de J2EE-SDK 2002 J2EE SDK downloads = 2 millones. 78% of executives view J2EE as the most effective platform for building and deploying Web services 2003 Java technology corre en 550 millones de desktops. Es el lenguaje primario de desarrollo de a lo sumo el 75% de los desarrolladores profesionales. 2004 Java 2 Platform, Standard Edition 5 (Project Tiger) released. Java en el Mars Rover (Spirit). 2005 Java celebra 10 años de vida. Approx 4.5 millones de desarrolladores usan tecnología Java Mas de 2.5 billones de dispositivos con tecnología Java existentes. James Gosling Scott McNealy (Sun) 5 © Diego C. Martínez - DCIC-UNS Definición de clases © Diego C. Martínez - DCIC-UNS 6 Definición de atributos Todas las entidades tienen un tipo, que puede ser simple, predefinido o un tipo compuesto (clases). <propiedades> class <nombre_clase>[<herencia>][<interfaces>] { Todas las entidades de tipos simples se manejan con semántica por valor, todas las entidades de tipos compuestos se manejan implícitamente con semántica por referencia. <cuerpo_clase> } Tipos simples para enteros: byte, short, int y long, de acuerdo a la cantidad de bits para la represenación (8 a 64) <cuerpo_clase> ::= {<def_atributo> | <def_operacion>}* Los nombres en Java corresponden a una secuencia arbitraria de caracteres exceptuando las palabras clave. Tipos simples para reales: float y double, de acuerdo a la cantidad de bits usados para la represenación (32 y 64) class Punto { ... } © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS Otros: char, para los caracteres, y boolean para los valores true y false. 7 © Diego C. Martínez - DCIC-UNS 8 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur Definición de atributos Definición de operaciones Las operaciones que una clase define para sus instancias también son clasificadas como consultas, comandos y constructores. <def_atributo> ::= [<prop_atr>]<tipo><nomb_atr>[<inicializ>] int num; boolean es_leñador; char categoria = ‘A’; Se define siempre primero el tipo de la función, luego el nombre y posteriormente los argumentos. <def_operacion> ::= [<prop_Operacion>] <tipo> <nomb_op> ( [<lista_param>] ) [<excep>] { class Punto { int coordx; int coordy; ... } <cuerpo_op> } <lista_param> ::= <tipo> <nombre> { , <tipo><nombre> } * 9 © Diego C. Martínez - DCIC-UNS Definición de operaciones 10 © Diego C. Martínez - DCIC-UNS Definición de operaciones El tipo de los comandos o setters es void, pues no devuelven nada. Los constructores no tienen tipo, y el nombre debe coincidir con el nombre de la clase. consulta (getter) int Edad() { ... } comando (setter) void recibirMensaje(string s) { ... } © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS constructor Empleado(string a, string n) { ... } En una clase de Java pueden existir varios constructores, pero todos deben tener el nombre de la clase. 11 © Diego C. Martínez - DCIC-UNS 12 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur Instrucciones Clase Punto Sintaxis de las instrucciones class Punto { int coordx; int coordy; Operadores: Aritméticos: + Lógicos: > trasladar(int dx, int dy) {...} >= * < != -= += -- *= ! (not) /= %= . new <Constructor>(<Parámetros>) return (expresion) Comentarios: // comentario de una línea /* comentario multilínea */ } 13 © Diego C. Martínez - DCIC-UNS Instrucciones Las sentencias se separan con punto y coma ; © Diego C. Martínez - DCIC-UNS 14 Instrucciones La sintaxis de las instrucciones es prácticamente la misma que del lenguaje C++ for( var=min; var < max; inc ) { // acciones } do { // acciones == Asignación: = Retorno de valores: if( condición ) { // acciones } else { // acciones } <= ++ || (or) Creación de objetos: Punto(int x, int y) {..} % Condicionales: && (and) Envío de mensajes: double distanciaOrigen() {...} / class Punto { int coordx; int coordy; while( condición ) { // acciones } trasladar(int dx, int dy) { coordx += dx; coordy += dy; } switch( variable ) { case n1: // acciones break; // otros case default: // acciones alternativas } double distanciaOrigen() { return (sqrt(coordx*coordx-coordy*coordy)); } Punto(int x, int y) { coordx = x; coordy = y; } } } while( condición ); © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS 15 © Diego C. Martínez - DCIC-UNS 16 1 Tecnologías de Programación Web Dr. Diego C. Martínez Depto de Cs e Ing. de la Computación Universidad Nacional del Sur Modificadores Herencia public class ClasePadre { int i; public ClasePadre(int h) {i=h;} public int getI() {return i;} } private:El atributo u operación es accesible únicamente desde la clase en la cual es declarado ClasePadre i:entero public: El atributo u operación es accesible para cualquier otra clase. En el caso de las clases, puede ser usada libremente. ClaeseHijo protected:El atributo u operación es accesible para las clases del paquete y las descendientes. j:entero static:El atributo u operación pertenece a la clase, no a las instancias de esa clase. Se invoca utilizando el nombre de la clase. public class ClaseHijo extends ClasePadre { int j; public Subclase(int m, int n) { i=m; j=n; } } © Diego C. Martínez - DCIC-UNS final:Se aplica a atributos, operaciones y clases. El atributo es constante. La operación no puede ser redefinida. La clase no puede ser heredada. abstract:Indicativo de operaciones o clases abstractas Si la clase no posee un modificador entonces es pública únicamente para el resto de las clases en el mismo paquete. 17 Ejemplo 18 © Diego C. Martínez - DCIC-UNS Packages Las librerías están organizadas por agrupaciones denominadas paquetes. public class Linea { private Punto p1; private Punto p2; Un paquete es simplemente un conjunto de clases relacionadas. Los packages se nombran usando nombres compuestos separados por puntos. Por ejemplo public void trasladar(int dx, int dy) { p1.trasladar(dx,dy); p2.trasladar(dx,dy); } java.awt.event java.rmi.server com.servidores.tcpip Esta organización de nombres tiene una correspondencia con la estructura física de almacenamiento de las clases de los paquetes… public double longitud() { return (p1.distancia(p2)); } java public Linea(int dx1, int dy1, int dx2, int dy2) { p1 = new Punto(dx1,dy1); p2 = new Punto(dx2,dy2); } awt event } © Diego C. Martínez - DCIC-UNS © DCM-DCIC-UNS 19 © Diego C. Martínez - DCIC-UNS 20 1