ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Teoría sobre JAVA


Enviado por   •  16 de Enero de 2020  •  Trabajos  •  3.336 Palabras (14 Páginas)  •  119 Visitas

Página 1 de 14

Trabajo práctico - Conceptos del lenguaje Java

Constructores        2

Modificadores de visibilidad        4

Colecciones        5

Excepciones        6

Static        6

Final        7

Clases abstractas        9

Interfaces        9

Clases abstractas e interfaces        9

Herencia        10

Polimorfismo        10


Constructores

Ejercicios

1. ¿Qué salida produce este código? Justifique su respuesta.

public class PruebasConstructores {
        
        
public static void main(String [] args) {
                
System.out.println("Pruebas 1");
                Clase3 o
= new Clase3();
                Clase2 o2
= new Clase3();
        
}
}

class Clase1 {
        
public Clase1() { System.out.print(1); }
}
class Clase2 extends Clase1 {
        
public Clase2() { System.out.print(2); }
}
class Clase3 extends Clase2 {
        
public Clase3() { System.out.println(3); }
}

Salida del código:         Pruebas 1

123

123

Al instanciar los objetos como de Clase3, el constructor de esta clase extiende de la Clase2. Por lo tanto, antes de armar su objeto, arma el de la clase que hereda. Así mismo, la Clase2 extiende de la Clase1, por lo que para construir su objeto debe llamar primero al constructor de la Clase1. De esta manera, primero imprime el 1, después el 2 y por último el 3.

2. ¿Qué salida produce este código? Justifique su respuesta.

public class PruebasConstructores2 {        
        
public static void main(String [ ] args) {
                
System.out.println("Pruebas 2");
                ClaseC o
= new ClaseC(1);
                ClaseB o2
= new ClaseC(1);
                ClaseB o2
= new ClaseC();
                ClaseA o3
= new ClaseA();
        
}
}

class ClaseA {
        
private ClaseA() { System.out.print(10); }
}
class ClaseB extends ClaseA {
        
public ClaseB() { System.out.print (20); }
}

class ClaseC extends ClaseB {
        
public ClaseC(int A) { System.out.print (30); } 
}

        Si bien la clase “ClaseB” hereda de “ClaseA”, no puede generar el constructor porque el constructor de “ClaseA” es privado. Es decir, que solo puede ser accedido por elementos de la misma clase. La solución a este problema es cambiar la visibilidad del constructor de A, de private a public.

        Pero, aun arreglando el problema anterior, en el main falla la siguiente instanciación ClaseB o2 = new ClaseC(). Esto es porque la clase “ClaseC” solo tiene definido un constructor parametrizado. La solución sería mandarle el parámetro correspondiente, quedando:

...

Descargar como (para miembros actualizados)  txt (16 Kb)   pdf (131 Kb)   docx (22 Kb)  
Leer 13 páginas más »
Disponible sólo en Clubensayos.com