Curso Java Unidad III

Anuncio
Unidad III
Programacion Orientada a objetos con JAVA
Parte II
Ing. José Luis Llamas Cárdenas
Unidad III
Métodos Constructores
Se ejecutan al crearse el objeto
en memoria
 Se llaman igual que la clase
 No retornan ningún valor y
tampoco se les indica
 Pueden estar sobrecargados

Métodos Finalizadores
Unidad III





Los finalizadores son métodos que vienen a
completar la labor del garbage collector.
Un finalizador es un método que se llama
automáticamente cuando se va a destruir un
objeto.
Se utilizan para ciertas operaciones de
terminación distintas de liberar memoria
Un finalizador es un método de objeto (no
static), sin valor de retorno, sin argumentos y
que siempre se llama finalize().
Los finalizadores se llaman de modo
automático
Unidad III
Sobrecarga de métodos

Los métodos pueden estar
sobrecargados, esto significa la
capacidad de tener mas de un
método con el mismo nombre pero
con diferente número y tipo de
argumentos o de valores de retorno.
Ejercicios 3.2
Unidad III
Construir un constructor para la clase
Persona que inicialice el nombre y la
edad.
 Construir una clase Circulo con un
atributo, radio y dos metodos
constructores uno que reciba el radio
y otro que no reciba radio y le asigne
un random.

4 Herencia
Unidad III



La herencia permite que se pueden definir
nuevas clases basadas en clases
existentes, lo cual facilita re-utilizar código
previamente desarrollado.
Si una clase deriva de otra (extends)
hereda todas sus variables y métodos.
La clase derivada puede añadir nuevas
variables y métodos y/o redefinir las
variables y métodos heredados
Unidad III
Herencia
Redefinición de Métodos
Unidad III


Una clase puede redefinir (volver a definir)
cualquiera de los métodos heredados de su
super-clase que no sean final o static. El
nuevo método sustituye al heredado para
todos los efectos en la clase que lo ha
redefinido.
Los métodos redefinidos pueden ampliar
los derechos de acceso de la super-clase
(por ejemplo ser public, en vez de
protected o private), pero nunca
restringirlos.
Unidad III
Clases y Métodos Abstractos

Una clase abstracta (abstract) es una clase
de la que no se pueden crear objetos. Su
utilidad es permitir que otras clases deriven
de ella, proporcionándoles un marco o
modelo que deben seguir y algunos
métodos de utilidad general. Las clases
abstractas se declaran anteponiéndoles la
palabra abstract, como por ejemplo,
public abstract class Geometria { ... }

Una clase abstract puede tener métodos
declarados como abstract, en cuyo caso no
se da definición del método.
Ejercicio 12
Unidad III

Crear la clase taxista derivada de la
clase persona.
Persona
Taxista
No.Licencia
AsignarLicencia();
LeerLicencia();
Concepto de Interface
Unidad III
Una interface es un conjunto de
declaraciones de funciones.
 Si una clase implementa (implements)
una interface, debe implementar
todas las funciones especificadas por
la interface.
 Una clase puede implementar más de
una interface, representando una
forma alternativa de la herencia
múltiple.

Clases y Métodos Finales
Unidad III



las variables declaradas como final no
pueden cambiar su valor una vez que han
sido inicializadas.
Una clase declarada final no puede tener
clases derivadas. Esto se puede hacer por
motivos de seguridad y también por
motivos de eficiencia, porque cuando el
compilador sabe que los métodos no van a
ser redefinidos puede hacer optimizaciones
adicionales.
Análogamente, un método declarado como
final no puede ser redefinido por una clase
que derive de su propia clase.
Interfaces
Unidad III


Una interface es un conjunto de
declaraciones de métodos (sin definición).
También puede definir constantes, que son
implícitamente public, static y final, y
deben siempre inicializarse en la
declaración.
Todas las clases que implementan una
determinada interface están obligadas a
proporcionar una definición de los métodos
de la interface, y en ese sentido adquieren
una conducta o modo de funcionamiento.
Interfaces
Unidad III


Una clase puede implementar una o varias
interfaces.
Para indicar que una clase implementa una o más
interfaces se ponen los nombres de las interfaces,
separados por comas, detrás de la palabra
implements, que a su vez va siempre a la derecha
del nombre de la clase o del nombre de la superclase en el caso de herencia. Por ejemplo,
public class CirculoGrafico extends Circulo
implements Dibujable, Cloneable {
...
}
Definición de Interfaces
Unidad III

Una interface se define de un modo
muy similar a las clases. A modo de
ejemplo se reproduce aquí la
definición de la interface Dibujable:
// archivo Dibujable.java
import java.awt.Graphics;
public interface Dibujable {
public void setPosicion(double x, double y);
public void dibujar(Graphics dw);
}
Jerarquía e Interfaces
Unidad III
Clase Padre
Clase Hija
Clase Padre
Clase Hija
Clase Padre
Clase Hija
Herencia permitida por java
Herencia no válida en Java
Clase Padre
Interface
Clase Hija
Uso de Interfaces
Ejemplo
Unidad III
Clase Object
Clase CCuenta
Clase
CCuentaAhorro
Clase
CCuentaCorriente
Clase
CCuentaCorrienteConIn
Clase CBanco
Interfase IFecha
Ejercicio 13
Unidad III

Crear una interfaz, llamada Cantante
para hacer cantar a los objetos de la
clase persona

Crear El archivo Interfaz.java para
hacer cantar un objeto persona
Polimorfismo
Unidad III




El polimorfismo tiene que ver con la relación que
se establece entre la llamada a un método y el
código que efectivamente se asocia con dicha
llamada.
Con funciones normales o sobrecargadas se utiliza
vinculación temprana
Con funciones redefinidas en Java se utiliza
siempre vinculación tardía, excepto si el método
es final.
La vinculación tardía hace posible que, con un
método declarado en una clase base (o en una
interface) y redefinido en las clases derivadas (o
en clases que implementan esa interface),
Excepciones
Unidad III



Una Excepción es un cierto tipo de error o
una condición anormal que se ha producido
durante la ejecución de un programa.
Algunas excepciones son fatales y
provocan que se deba finalizar la ejecución
del programa.
En este caso conviene terminar
ordenadamente y dar un mensaje
explicando el tipo de error que se ha
producido.
Excepciones
Unidad III
class Principal
{
public static void main( String[] a )
{
int i=0, j=0, k;
k = i/j;
}
}
// Origina un error de division-by-zero
Unidad III
Excepciones
class Exep01 {
public static void main(String[] Args)
{
String holas[] = {"Hola", "Hola", "Hola", "Hola", "Hola"};
try {
for(int i = 0; i < 6; i++)
System.out.println(holas[i]+" "+(i+1));
}
catch(ArrayIndexOutOfBoundsException e) {
System.err.println("Arreglo Desordado");
}
catch(Exception e2) {
System.err.println("Ocurrio otro error");
}
finally {
System.out.println("Siempre sale esto");
}
}
}
Unidad III
Excepciones Predefinidas
Lanzar una Excepción
Unidad III


Se crea un objeto Exception de la
clase adecuada.
Se lanza la excepción con la
sentencia throw seguida del objeto
Exception creado.
Unidad III
Creación de Excepciones
class ServerTimeOutException extends Exception {}
public void conectame( String nombreServidor ) throws Exception
{
int exito;
int puerto = 80;
exito = open( nombreServidor,puerto );
if( exito == -1 )
throw ServerTimeOutException;
}
Descargar