unidad iii - llamas blog · 2010-02-12 · unidad iii programacion orientada a objetos con java...
Post on 28-Jun-2020
2 Views
Preview:
TRANSCRIPT
Unidad IIIProgramacion Orientada a objetos con JAVAParte 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
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
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
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
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
HerenciaUnidad III
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
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
Ejercicio 12
Crear la clase taxista derivada de la clase persona.
Unidad III
Persona
TaxistaNo.Licencia
AsignarLicencia();LeerLicencia();
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
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
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
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
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
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
Ejemplo
Clase Object
Clase CCuenta
Clase CCuentaAhorro
Clase CCuentaCorriente
Clase CCuentaCorrienteConIn
Clase CBanco
Interfase IFecha
Unidad III
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
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
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
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
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
Excepciones PredefinidasUnidad III
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
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
top related