Blog sobre Iniciación a la Programación en C y JAVA con material en pdf y vídeos
Si un argumento formal de tipo wrapper es modificado en un método entonces el argumento real también es modificado
Si un argumento formal de tipo List es modificado en un método entonces el argumento real también es modificado
Si un argumento formal de tipo primitivo es modificado en un método entonces el argumento real también es modificado
Si un argumento formal de tipo Circulo es modificado en un método entonces el argumento real también es modificado
Si un argumento formal de tipo Boolean es modificado en un método entonces el argumento real también es modificado
Persona p1 = new PersonaImpl(.........); Persona p2 = new PersonaImpl(.........); if() { mostrar(p1 + " y " + p2 + " son iguales"); } else { if(){ mostrar(p1 + " está antes en el orden que " + p2); } else{ mostrar(p1 + " está después en el orden que " + p2); } }
public boolean equals (Object o){ boolean res = false; if (o instanceof Persona){ Persona p = (Persona) o; res = getApellidos().equals(p.getApellidos()) && getNombre().equals(p.getNombre()); } return res; }
public compareTo( p) { int res = ; if (){ = ; } return res; }
public interface Punto { Double getX(); Double getY(); void setX(Double x); void setY(Double y); }
public class TestCirculo extends Test { public static void main(String [] args) { Punto p = new PuntoImpl(1.,1.); Circulo c = new CirculoImpl(p,1.0); c.setRadio(4.) ; } }
ExcepcionRadioNegativo { (, Double ){ (s+"radio: "+r); } }
public class RadioNoValidoException { public RadioNoValidoException ( ) { ; } public RadioNoValidoException (String texto) { ; } }
public static void main(String [] args) { { p = (1.0,1.0); c = (p,3.0); c.setRadio(-1.); } ( e){ System.out.println("Excepción capturada"+e); } }
- try catch finally Bloques que son recorridos secuencialmente hasta encontrar el tipo de excepción que se disparó
- try catch finally Bloque opcional que, en caso de existir, se ejecuta siempre
- try catch finally Bloque que engloba el trozo de programa donde se desea controlar las excepciones
public void setRadio(Double radio) throw ExcepcionCirculoRadioNegativo{…}
public class ExcepcionCirculoRadioNegativo extends RuntimeException {…}
try{c.setRadio(4.);} catch { ExcepcionCirculoRadioNegativo ecr } {…}
if (radio<0) throw new ExcepcionCirculoRadioNegativo(“Error”, radio);
try {c.setRadio(-1.);} catch (ExcepcionCirculoRadioNegativo ecr) {…}
En la signatura de los métodos que puedan lanzarlas estará una cláusula throws
Sus constructores son similares
Se lanzan con sentencias throw
Se tratan con sentencias try-catch
El error de compilación “Unhandled Exception”
Significa que a la cláusula throw le falta el new
Podemos solucionarlo con una sentencia try-catch
Se trata de una excepción que hereda de RuntimeException
Podemos solucionarlo con una cláusula throws en la cabecera del método
Se trata de una excepción que hereda de Exception
La captura de excepciones en una sentencia try-catch no termina el programa
La sección finally es obligatoria en una sentencia try-catch
Una sentencia catch correcta podría ser catch (ExcepcionCirculoRadioNegativo ecr) {….}
El orden de las sentencias catch no importa
En el bloque de sentencias bajo la cláusula try sólo puede haber llamadas a métodos que lanzan excepciones.
Sus constructores solo admiten argumentos de tipo String
Se disparan con una sentencia throw
La clase que las implementa debe tener en su declaración: extends RunTimeException
La clase que las implementa debe tener en su declaración: implements RuntimeException
Se pueden capturar y tratar mediante una sentencia try-catch
La clausula throws debe de ponerse también en la interfaz
No pueden ser lanzadas o disparadas con una sentencia throw
Si se capturan mediante una sentencia try-catch no hace falta poner throws en la cabecera
Los métodos que las pueden disparar deben de tener en su cabecera una clausula throws
Sólo pueden ser tratadas mediante una sentencia try
Las excepciones permiten que un programa continúe al ser lanzadas con una sentencia throw
Las excepciones que heredan de RuntimeException no pueden ser tratadas en una sentencia try
En la invocación a super en el constructor de una excepción puede haber argumentos de distintos tipos
Los constructores de una excepción pueden recibir argumentos de distinto tipo
En un constructor de una clase excepción la única sentencia suele ser una llamada a super
Una excepción debe implementar varios métodos
Una excepción puede implementar varios constructores
En la cabecera de una clase estará siempre la palabra implements
Una excepción se implementa mediante una clase
El código de un constructor de una excepción suele ser una llamada al constructor de la clase padre
Una excepción termina siempre con la ejecución del programa
Las excepciones son errores en tiempo de ejecución
Las excepciones se implementan mediante interfaces
Las excepciones son errores en tiempo de compilación
Las excepciones siempre son clases hijas de otras
El método compareTo recibe un argumento del tipo que se quiere comparar
La interfaz Comparable sirve para implementar un orden alternativo de un tipo
El método compare debe devolver un valor mayor que 0 si el primer argumento es mayor que el segundo
El método compare recibe un argumento del tipo que lo implementa
Los métodos toString y hashCode son métodos que se heredan de Object
La clase que implementa un orden alternativo debe implementar la interfaz Comparator
El método compare debe devolver un valor menor que 0 si el primer argumento es mayor que el segundo
La invocación p1.compareTo(p2) devuelve un int
El método compareTo debe devolver un valor igual a 0 si el objeto this es igual al argumento formal
La interfaz Comparator sirve para implementar el orden natural de un tipo
El método compare debe devolver un valor mayor que 0 si el objeto this es mayor que el argumento formal
La clase que implementa un orden alternativo debe extender la interfaz Comparator
Un objeto de tipo Comparator se crea mediante el operador new
Los métodos compareTo y equals son métodos que se heredan de Object
Si c es un objeto de tipo Comparator, la invocación c.compare(p1,p2) devuelve un int
El método compareTo recibe un argumento del tipo Object
Si p1.compareTo(p2) es mayor que 0 entonces p1.equals(p2) debe ser false
El método compare debe implementarse en la clase que implementa el tipo
El método compareTo se implementa mediante invocaciones de los métodos compareTo de las propiedades del tipo
Si p1.compareTo(p2) es igual a 0 entonces p1.equals(p2) debe ser true
Persona p1=new PersonaImpl("Pablo","García","31122334W",25); Persona p2=new PersonaImpl("María","García","28423123V",23); if (………………………………………………………){ System.out.println(p1 + " es posterior en orden alfabético a "+p2); }
compare(p1,p2)<0
p1.compareTo(p2)<0
p2.compareTo(p1)<0
p1.compareTo(p2)>0
p2.compareTo(p1)>0
Persona p1=new PersonaImpl("Antón","García Maratón","31122334W",23); Persona p2=new PersonaImpl("María","Pérez Piña","34423123V",25); Comparator c = new ComparadorPersonaEdad(); if (………………………………………………………){ System.out.println(p1 + " es más joven que "+p2); }
c.compare(p2,p1)>0
c.compare(p1,p2)<0
c.compare(p2,p1)<0
c.compare(p1,p2)>0
Persona p1=new PersonaImpl("Antón","García Maratón","31122334W",25); Persona p2=new PersonaImpl("María","Pérez Piña","34423123V",23); Comparator c = new ComparadorPersonaEdad(); if (………………………………………………………){ System.out.println(p1 + " tiene más edad que "+p2); }
return compare(p1.getX(),p2.getX());
ninguna de las restantes
return p1.getX().compareTo(p2.getX());
return p2.getX().compareTo(p1.getX());
return p1.getX().compare(p2.getX());
Collections.min(lp, new ComparadorPunto());
Collections.sort(lp, new ComparadorPunto());
lp=Collections.sort(lp);
Collections.sort(lp);
p=Collections.min(lp);
public ( o) { boolean ; if(){ Punto p = ; res = ; } return res; }
public hashCode() { return + 31 * ; }
El método sort de la clase Collections recibe un List y devuelve otro List ordenado
El método min de la clase Collections devuelve void
Los métodos de la clase Collections se invocan desde un objeto de tipo List
La clase Collections es una clase de utilidad
El método sort de la clase Collections devuelve void
Puntuacion Total
Aciertos
Aciertos Parciales
No hay comentarios:
Publicar un comentario