Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA...

25
Unidad III Programacion Orientada a objetos con JAVA Parte II Ing. José Luis Llamas Cárdenas

Transcript of Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA...

Page 1: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Unidad IIIProgramacion Orientada a objetos con JAVAParte II

Ing. José Luis Llamas Cárdenas

Page 2: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

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

Unidad III

Page 3: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Métodos Finalizadores 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

Page 4: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

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.

Unidad III

Page 5: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Ejercicios 3.2

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.

Unidad III

Page 6: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

4 Herencia 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

Page 7: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

HerenciaUnidad III

Page 8: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Redefinición de Métodos 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

Page 9: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

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.

Unidad III

Page 10: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Ejercicio 12

Crear la clase taxista derivada de la clase persona.

Unidad III

Persona

TaxistaNo.Licencia

AsignarLicencia();LeerLicencia();

Page 11: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Concepto de Interface

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.

Unidad III

Page 12: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Clases y Métodos Finales

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.

Unidad III

Page 13: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Interfaces 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.

Unidad III

Page 14: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Interfaces 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 super-clase en el caso de herencia. Por ejemplo,

public class CirculoGrafico extends Circuloimplements Dibujable, Cloneable {...}

Unidad III

Page 15: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Definición de Interfaces

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.javaimport java.awt.Graphics;public interface Dibujable {public void setPosicion(double x, double y);public void dibujar(Graphics dw);}

Unidad III

Page 16: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Jerarquía e Interfaces

Clase Padre

Clase Hija Clase Hija Clase Hija

Clase Padre Clase Padre

Clase Padre

Clase Hija

Interface

Herencia permitida por java Herencia no válida en Java

Uso de Interfaces

Unidad III

Page 17: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Ejemplo

Clase Object

Clase CCuenta

Clase CCuentaAhorro

Clase CCuentaCorriente

Clase CCuentaCorrienteConIn

Clase CBanco

Interfase IFecha

Unidad III

Page 18: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Ejercicio 13

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

Unidad III

Page 19: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Polimorfismo 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),

Unidad III

Page 20: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Excepciones 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.

Unidad III

Page 21: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Excepciones

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

Page 22: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Excepcionesclass 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

Page 23: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Excepciones PredefinidasUnidad III

Page 24: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Lanzar una Excepción

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

Page 25: Unidad III - Llamas Blog · 2010-02-12 · Unidad III Programacion Orientada a objetos con JAVA Parte II. Ing. José Luis Llamas Cárdenas

Creación de Excepcionesclass ServerTimeOutException extends Exception {}

public void conectame( String nombreServidor ) throws Exception {

int exito;int puerto = 80;exito = open( nombreServidor,puerto );if( exito == -1 )

throw ServerTimeOutException;}

Unidad III