Constructores & excepciones

  • 575 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
575
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
11
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Modulo II
  • 2. Constructores Un punto clave de la Programación Orientada Objetos es el evitarinformación incorrecta por no haber sido correctamente inicializadas lasvariables. Java no permite que haya variables miembro que no estén inicializadasy ya se ha dicho que Java inicializa siempre con valores por defecto, las variablesmiembro de clases y objetos. El segundo paso en la inicialización correcta deobjetos es el uso de constructores.Un constructor es un método que se llama automáticamente cada vez que se creaun objeto de una clase. La principal misión del constructor es reservar memoria einicializar las variables miembro de la clase.
  • 3. Características• Los Constructores no tienen valor de retorno (ni siquiera void)• Su nombre es el mismo de la clase.• También pueden tener modificadores de acceso, pueden ser: públicos, privados, static, protected y package.• Dentro de una clase los constructores solo pueden ser llamados por otros constructores o por método static.• No son llamados por método de objeto de la clase.
  • 4. Métodos sobre CargadosEste lenguaje permite la sobrecarga de métodos, es decir, crear varios métodoscon el mismo nombre y diferentes colecciones de argumentos. La elección deejecutar un método u otro dependerá de la colección de argumentos que usa,inicialmente se busca un método que tenga la misma distribución deargumentos.Ejemplo:Veamos un método que se desea sobrecargar:public void cambiarTamano(int tamano, String nombre, float patron){ }Los siguientes métodos son sobrecargas legales del método cambiarTamano():public void cambiarTamano(int tamano, String nombre){}public int cambiarTamano(int tamano, float patron){}public void cambiarTamano(float patron, String nombre) throws IOException{}
  • 5. Cómo invocar un métodosobrecargado:Lo que define qué método es el que se va a llamar son los argumentos que seenvían al mismo durante la llamada. Si se invoca a un método con un Stringcomo argumento, se ejecutará el método que tome un String comoargumento, si se manda a llamar al mismo método pero con un float comoargumento, se ejecutará el método que tome un float como argumento y asísucesivamente. Si se invoca a un método con un argumento que no esdefinido en ninguna de las versiones sobrecargadas entonces el compiladorarrojará un mensaje de error.
  • 6. Ejemplo de una clase con un métodosobrecargado:public class Sobrecarga {public void Numeros(int x, int y){System.out.println("Método que recibe enteros.");}public void Numeros(double x, double y){System.out.println("Método que recibe flotantes.");}public void Numeros(String cadena){System.out.println("Método que recibe una cadena: "+ cadena);}public static void main (String... args){Sobrecarga s = new Sobrecarga();int a = 1;int b = 2;s.Numeros(a,b);s.Numeros(3.2,5.7);s.Numeros("Monillo007");}}
  • 7. Palabra resevada «this»Referenciar una instancia de una clase interna o externa dentro de una clase interna::De antemano sabemos (o debemos saber) que la manera en que un objeto hace referenciahacia él mismo es mediante la referencia this. Revisemos un poco la referencia this:+ La palabra reservada this puede ser utilizada solamente dentro del código de instancia deuna clase y no dentro de código estático.+ Al referenciar con this, hacemos referencia(valga la redundancia) al objeto que se estáejecutando actualmente.+ La referencia this es la manera en que un objeto puede pasarse a sí mismo comoparámetro hacia un método. P. ej.:public void miMetodo(){MiClase mc = new MiClase();mc.hacerAlgo(this); //se pasa como parámetro el objeto actual.}
  • 8. Constructores SobreCargadosSobrecargar un constructor significa escribir versiones múltiples delconstructor de una clase, cada uno de ellos con una lista diferente deargumentos, algo parecido a lo que se muestra a continuación:class Animal{ Animal(){} Animal(String nombre){} Animal(String nombre, int edad){}}En la clase anterior (la clase Animal) podemos identificar que existen 3constructores sobrecargados, uno que toma una cadena como argumento,otro que toma una cadena y un entero y otro sin argumentos.
  • 9. Excepciones Este lenguaje Java tiene desde su origen una vocación deindependencia del sistema operativo, lo que le confiere unas característicasque permiten su ejecución en redes de ordenadores con diferentes sistemasoperativos, acceso remoto a objetos en otras maquinas de red, etc. Todasestas ejecuciones son una fuente principal de errores en especial el uso deperiféricos como son: teclado, impresora, escanner, etc. Todas estas circunstancias pueden provocar desastres en laejecución del programa que suponen la finalización de la aplicación de formadescontrolada dejando ficheros abiertos, pérdida de datos por falta de suarchivo. Dentro de este lenguaje existe una estructura que puede controlarerrores, creando el concepto de excepción, que es un objeto que se generaautomáticamente cuando se produce un acontecimiento circunstancial.
  • 10. Estructura Try – catchTry{ [Bloque de sentencias que se ejecutan en circunstancias normales]} catch (Clase Excepción1 e){ [Bloque que se ejecutan si se ha producido una excepción de la claseExcepción2]} catch (Exception e){ [Bloque que se ejecutan si se ha producido una excepcion no capturadaanteriormente]}finally { [Bloque de sentencias que se ejecutan siempre]}
  • 11. EjemploImport java.io.*;Public class Excepcion1{ public static void main(String args[]){ BufferedReader teclado = new BufferedReader(new InputStreamReader (System.in)); boolean error = false; do{ try{ error=false; System.out.print(«nIntroduce un numero: «); String texto= teclado.readLine(); int i = Integer.parseInt (texto); System.out.print(«Teclea otro numero: «); texto = teclado.readLine(); int j = Integer.parseInt (texto); System.out.printf(«La división %d/%d = %dn», i,j,i/j);
  • 12. Ejemplo:} catch (Exception e) { //Muestra error producido System.out.println(e.getMessage()); /* Imprime las llamadas producidas hasta el método que generó el error */ e.printStackTrace(); error = true;} }while (error);}
  • 13. Generación de excepciones sentencia throwLa sentencia throw permite al programador generar excepciones específicas para la lógica de sus aplicaciones. La clase persona muestra como el método ponEdad genera una excepción cuando la edad es menorde cero y mayor a cien.el método que ha realizado la llamada ponEdad() se captura la excepción a través del bloque catch de la claseExceptionPublic class Persona{ private int edad; public void ponEdad(int edadNueva) throws Exception{ if (edadNueva < 0 || edadNueva > 100) throw (new Exception («Edad no valida»)); edad = edadNueva; } public String toString(){ return «Edad: «+ edad; }}
  • 14. Continuación