unidad iii - llamas blog · 2010-02-12 · unidad iii programacion orientada a objetos con java...
TRANSCRIPT
![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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042402/5f10b99a7e708231d44a83bd/html5/thumbnails/25.jpg)
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