Clase - bienvenidos a comunidad itam

Anuncio
Introducción a JAVA
Angel Kuri
Enero, 2006
2/2/2006
Características Básicas de Java
JAVA es un lenguaje de programación:
a) Independiente de la plataforma
- Corre en una máquina virtual
- El código de dicha MV es bytecode
b) Es orientado a objetos
c) Tiene características que lo hacen
apropiado para operar en WEB.
2/2/2006
Una Aplicación Java
Usando su editor, teclee:
class HelloWorld {
public static void main (String args[]) {
System.out.println("Hola a todo el Mundo!");
}
}
Guarde este código como “HelloWorld.Java”
2/2/2006
Compilando la Aplicación
Compile el código anterior:
javac HelloWorld.java
Si todo va bien, el compilador ha creado un
programa objeto en bytecode, llamado
HelloWorld.class
2/2/2006
Ejecutando la Aplicación
Para correr su programa, invoque la máquina
virtual Java:
java HelloWorld
Deberá observar la sentencia:
Hola a todo el mundo!
2/2/2006
Creando un Applet
Ahora crearemos un applet. Teclee el siguiente código:
import java.awt.Graphics;
public class HWApplet extends java.applet.Applet {
public void paint(Graphics g) {
g.drawString("Hola a todo el Mundo!",5,25);
}
}
2/2/2006
Creando un Applet
Ahora cree el siguiente archivo:
<HTML>
<HEAD>
<TITLE>Hola a Todo el Mundo!</TITLE>
</HEAD><BODY>
<P>Mi Applet de JAVA dice:
<APPLET CODE="HWApplet.class" WIDTH=150 HEIGHT=25><APPLET>
</BODY>
</HTML>
2/2/2006
Visualizando un Applet
Ahora use su visor.
a) Invóquelo
b) Indique que desea visualizar el archivo que
acaba de crear:
HWApplet.html
2/2/2006
Applet 1
Deberá observar una pantalla similar a la
siguiente:
2/2/2006
Consideraciones de Seguridad
Como hemos visto, los applets se cargan vía
visores como Netscape o Explorer. Java
mantiene ciertas restricciones para evitar la
posibilidad de que un applet dado pueda
dañar a nuestro sistema.
2/2/2006
Restricciones de un Applet
Un applet:
a) No puede leer o escribir de/en un disco
local.
b) No pueden ejecutar un programa en el
sistema local.
c) No pueden conectarse a ninguna máquina
de la red que no sea el servidor local del
cual se cargaron originalmente.
2/2/2006
Restricciones de Java
El compilador e intérprete de Java verifican la
funcionalidad de los programas para tratar
de evitar situaciones anómalas. Por ejemplo,
tratan de evitar que el programador
sobrecargue las áreas de memoria (buffers)
o apile un número excesivo de cuadros.
2/2/2006
Programación Orientada a
Objetos (POO)
La POO está modelada sobre la idea de que
un objeto está formado por objetos más
pequeños.
Por otra parte, permite la definición de ciertos
conjuntos de objetos que comparten
características comunes: las clases.
2/2/2006
Objetos y Clases
Una clase es una plantilla para objetos
múltiples con características similares. Las
clases comprenden todas las características
de una serie particular de objetos.
Por ejemplo, podemos definir la clase Arbol
que describe las características de todos los
árboles (tienen hojas, raíces, crean clorofila,
crecen, exhiben capilaridad,etc.)
2/2/2006
Objetos y Clases
Las clase Arbol sirve como un modelo de la
esencia del objeto. Para poder manipular un
árbol, sin embargo, es indispensable
instanciarlo, es decir, necesitamos tener una
instancia concreta del mismo. Este objeto
puede tener propiedades distintivas en cada
una de sus instancias (bajo, frondoso, de
hojas perennes, etc.)
2/2/2006
Objetos y Clases
Una instancia de una clase es otra forma de
llamar a un objeto.
La clase es la representación general de un
objeto;
Una instancia es su representación concreta.
2/2/2006
Objetos y Clases
Cuando se escribe un programa en Java, se
diseña y construye un conjunto de clases.
Cuando se ejecuta dicho programa las
instancias de las clases (los objetos) se
crean y descartan en la medida en que esto
sea necesario.
La tarea del programador es crear el conjunto
de clases adecuado.
2/2/2006
Programas en Java
Pero, al escribir programas en Java, es posible
(y muy deseable) aprovechar un conjunto de
clases (en una biblioteca) que forman parte
del entorno de Java.
Estas clases implementan una buena parte del
comportamiento básico necesario.
2/2/2006
Comportamiento y Atributos
Cada clase en Java está compuesta por dos
elementos:
a) Atributos
b) Comportamiento
Los Atributos son las características que
definen a un objeto.
2/2/2006
Atributos
Si creamos una clase llamada Motorcycle
algunos de sus atributos son los siguientes:
- Color: rojo, verde, azul, etc.
- Estilo: deportiva, estándar, carga
- Marca: Honda, BMW, Kawasaki
Los atributos también pueden incluir
información sobre su estado: apagada,
velocidad actual, etc.
2/2/2006
Atributos
Los atributos se definen con variables. De
hecho, pueden ser considerados como las
variables globales del objeto.
Como cada variable puede tener distintos
valores en un cierto objeto, a cada variable
se le llama variable de instancia.
2/2/2006
Variables de Instancia
Las variables de instancia definen los atributos
de un objeto.
La clase define el tipo de atributo y cada objeto
guarda su propio valor para ese atributo.
Las VI pueden fijarse cuando se crea un objeto (y
permanecen fijas en tanto el objeto sea
vigente) o se pueden habilitar para cambiar a
lo largo del programa.
2/2/2006
Variables de Clase
Hay atributos que se aplican a la clase y a
todas sus instancia (VC).
A diferencia de las VI cuyos valores se
guardan en el objeto, los valores de las VC
se almacenan en la clase misma.
2/2/2006
Comportamiento
El comportamiento de la clase determina qué
objetos de la clase requieren cambiar su
estado o cuándo ese objeto es llamado para
realizar algo (por otra clase u objeto).
El comportamiento es la única forma en la que
un objeto puede hacerse algo a si mismo o
tener que hacer algo a otro objeto.
2/2/2006
Comportamiento
Algunos comportamientos de Motorcycle son:
- Arrancar el motor
- Detener el motor
- Acelerar
- Cambiar velocidades
- Frenar
2/2/2006
Métodos
Para definir el comportamiento de un objeto
se crean métodos. Estos tienen una
funcionalidad análoga a la de un procedimiento en otros lenguajes.
Los métodos son funciones definidas dentro
de las clases que operan en los objetos de
esas clases.
2/2/2006
Métodos
Los objetos también se comunican entre si
con métodos. Una clase u objeto puede
llamar a métodos de otra clase u objeto para
avisar sobre cambios en el entorno o para
solicitar a un objeto que cambie su estado.
2/2/2006
Cómo Crear una Clase
class Motorcycle {
String make;
String color;
boolean engineState;
void startEngine() {
if (engineState == true)
System.out.println("La máquina ya está encendida");
else {
engineState = true;
System.out.println("La máquina se ha encendido");
}
}
2/2/2006
Cómo crear una clase
void showAtts() {
System.out.println("Esta moto es una "+make+" "+color);
if (engineState == true)
System.out.println("La máquina está encendida");
else {
System.out.println("La máquina está apagada");
}
}
}
Para ejecutar adecuadamente Java requiere de un
método
main()
2/2/2006
public static void main (String args[]) {
Motorcycle m = new Motorcycle();
m.make = "Yamaha RZ350";
m.color = "roja";
System.out.println("Llamando a showAtts...");
m.showAtts();
System.out.println("- - - -");
System.out.println("Encendiendo máquina...");
m.startEngine();
System.out.println("- - - -");
System.out.println("Llamando a showAtts...");
m.showAtts();
System.out.println("- - - -");
System.out.println("Encendiendo máquina...");
m.startEngine();
}
2/2/2006
Herencia
La herencia es una de las características
primordiales de la POO.
Debido a la herencia, todas las clases están
posicionadas en una jerarquía específica.
2/2/2006
Jerarquía de Clases
La clase A es una
superclase de B.
La clase B es una
subclase de A.
La clase B es una
superclase de C, D
y E.
Las clases C, D y
E son subclases de
B.
2/2/2006
Herencia
Las subclases heredan todos los métodos y
variables de las superclases.
Si una superclase X define un comportamiento que es conveniente en otra clase Y,
al establecer a Y como subclase de X es
innecesario redefinir ese comportamiento.
Una clase, de manera automática, hereda, su
comportamiento de su superclase.
2/2/2006
Herencia
En la clase superior de la jerarquía de JAVA está la
clase Object; todas las clases heredan de esta
superclase.
Una subclasificación implica crear una nueva
subclase que heredará de alguna otra clase en la
jerarquía.
Cambiar el comportamiento de una superclase
modifica el comportamiento de clases inferiores
de manera automática.
2/2/2006
Jerarquía de Clases
Ejemplo de una jerarquía de clases:
2/2/2006
Cómo funciona la herencia
En las variables de instancia, una instancia de
clase genera una “ranura” para cada
variable definida en la clase y para cada
variable de sus superclases.
Así, todas las clases se combinan para crear
una plantilla para el objeto.
Luego cada objeto llena los espacios de la
plantilla.
2/2/2006
Cómo funciona la herencia
Los métodos operan de forma similar.
Los objetos nuevos tienen acceso a todos los
nombres de los métodos de su clase y sus
superclases.
Pero las definiciones de métodos se eligen de
manera dinámica cuando se invoca a un
método.
2/2/2006
Sobreposición
Cuando una subclase define un método que posee la
misma identificación (nombre; número y tipo de
los argumentos) que un método en una superclase
la definición del primer (de abajo a arriba) método
en la clase es la que opera.
Es posible ocultar un método superior definiendo
uno inferior con el mismo identificador.
A esto se le llama sobreponer un método.
2/2/2006
Herencia Sencilla y Múltiple
Cada clase en JAVA puede tener solamente
una superclase, aunque puede tener tantas
subclases como se desee.
En otros lenguajes OO (como C++) las clases
pueden tener más de una superclase y
heredan con variables y métodos
combinados de todas esas clases.
A eso se le llama herencia múltiple.
2/2/2006
Interfaces
La herencia sencilla de JAVA puede ser
restrictiva. En particular, cuando tiene un
comportamiento similar que necesita
duplicarse mediante diferentes ramas de la
jerarquía de clase. Esto se resuelve con las
interfaces.
Una interfaz es una colección de nombres de
métodos sin definiciones reales que indican
que una clase tiene un conjunto de
comportamientos, además de los que la
clase hereda de las superclases.
2/2/2006
Paquetes
Los paquetes son una forma de agrupar clases
e interfaces relacionadas.
Permiten que grupos modulares de clases
estén disponibles solo al necesitarse.
Eliminan conflictos entre nombres de clase
entre diferentes grupos de clase.
2/2/2006
Paquetes
Las bibliotecas de clase de JDK están
contenidas en un paquete llamado java.
Las clases del paquete son las únicas que
garantizan disponibilidad en cualquier
instalación.
El paquete java contiene otros paquetes para
clases que definen el lenguaje de las clases
de entrada/salida, algunos fundamentos de
redes y las funciones de manejo de
ventanas.
2/2/2006
Paquetes
Por omisión, las clases JAVA tienen acceso
solo a las clases que se encuentran en
java.lang (el paquete de lenguaje básico). Para usar clases de otro paquete es
necesario referirse a ellas de manera explícita.
Por ejemplo, la clase Color que está contenida en el paquete awt (Abstract Windowing
Toolkit) debe ser invocada con la notación
java.awt.Color.
2/2/2006
Creación de una Subclase
Usaremos, como ejemplo de una subclase, un applet.
Todos los applets son subclases de la clase Applet;
ésta es parte de java.applet.
Al crear una subclase de Applet se heredan los
comportamientos del kit de ventanas así como las
clases de diseño que permiten al applet dibujarse
en el lugar correcto de la página e interactuar con
opciones del sistema, tales como presiones de
teclas o clics del ratón.
2/2/2006
Creación de una Subclase
import java.awt.Graphics;
import java.awt.Font;
import java.awt.Color;
public class HAApplet extends java.applet.Applet {
Font f = new Font("TimesRoman", Font.BOLD, 36);
public void paint(Graphics g) {
g.setFont(f);
g.setColor(Color.red);
g.drawString("Hola nuevamente!",5,50);
}
}
2/2/2006
Creación de una Subclase
En nuestro programa, la variable de instancia f
ahora contiene un objeto de la clase Font, que
forma parte del paquete java.awt.
Al escribir applets hay varios métodos estándares
que, por lo común, sobrepondremos en la clase del
applet.
Uno de estos métodos es paint(), el cual despliega el applet en pantalla. La definición predeterminada no hace nada: es un método vacío.
Al sobreponer este método, le decimos al applet qué
debe dibujar en pantalla.
2/2/2006
Creando una Subclase
<HTML>
<HEAD>
<TITLE>Otro Applet</TITLE>
</HEAD>
<BODY>
<P>Mi Segundo Applet de JAVA dice:
<APPLET CODE="HAApplet.class" WIDTH=300 HEIGHT=50>
</APPLET>
</BODY>
</HTML>
2/2/2006
Applet 2
2/2/2006
Repaso a Términos de POO
Clase. Una plantilla para un objeto.
Objeto. Instancia correcta de alguna clase.
(Super/Sub)clase. Una clase más arriba/abajo en la
jerarquía de clases.
Método de instancia. Comportamiento definido en
un objeto de una clase (=método).
Método de clase. Método definido para una clase.
2/2/2006
Repaso a Términos de POO
Variable de instancia. Variable que es propia de un
objeto.
Variable de clase. Variable propia de una clase y
todas sus instancias.
Interfaz. Una serie de especificaciones abstractas de
comportamiento que las clases pueden implantar.
Paquete. Una colección de clases e interfaces.
2/2/2006
Descargar