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