Sunteți pe pagina 1din 4

Ejercicios de Java – Boletín 2

Curso 2015/2016

Clases y Objetos

1. Identifica y explica los 4 errores de compilación que existen en el siguiente


código.

package paquete1;

public class A{
private B ob = null;

public A(){
ob = new B();
}

public A (A otro){
ob = otro.ob;
}

public int met(){


return ob.x;
}

public static void main (String[] args){


A oa = new A(this);
oa.met();
}
}

package paquete1.paquete2;

public class B{
int x = 0;

public B(int x){ this.x = x;}


}

2. Dada una clase A que tiene un solo constructor sin argumentos, queremos
añadir la siguiente funcionalidad: conocer el número de objetos de la clase
A que se han creado. Indica el código que habría que introducir en la clase
para ofrecer esa funcionalidad. Muestra un ejemplo de uso de la nueva
funcionalidad.

1
3. Justifica cuál sería el resultado de la ejecución del siguiente código:

package paquete1;

public class Numero {

private int valor;

public Numero(int valor){


this.valor = valor;
}

public int getValor() {


return valor;
}

public void setValor(int valor) {


this.valor = valor;
}
}

package paquete1;

public class Envoltorio {

private Numero n;

public Envoltorio(Numero n){


n.setValor(0);
}

public Numero getNumero(){


return n;
}

public static void main(String[] args) {


Numero n = new Numero(3);
Envoltorio e = new Envoltorio (n);

System.out.println(n.getValor());
System.out.println(e.getNumero().getValor());
}
}

2
4. ¿Cuál es el resultado de la ejecución del siguiente código sin errores de
compilación? Justifica la respuesta

public class C {

private int at;


public C(){
at=0;
}
public void met(C p1, int p2){
p1 = new C();
p1.at=5;
at = ++p2;
}

public static void main(String[] args) {


C oc1 = new C();
C oc2 = new C();
int v = 5;

oc1.met(oc2,v);
System.out.println(oc1.at);
System.out.println(oc2.at);
System.out.println(v);
}
}

5. (junio 2014) Explica mediante un ejemplo la declaración y uso de


argumentos de tamaño variable.

6. (febrero 2014) En Java, sobre la aplicación del modificador final en


atributos, responde a las siguientes cuestiones justificando las respuestas:

a) Si el atributo es de tipo boolean, ¿con qué valor es inicializado por


defecto?

b) Dada la clase A que define un atributo at1 final, y dos objetos oa1 y
oa2 de esta clase, ¿qué problemas tiene la siguiente asignación oa1 =
oa2?

7. (septiembre 2012) Dado el siguiente código:


//Fichero: PasoParametros.java

3
public class PasoParametros {

a) Explica y soluciona el error de


compilación del código.
private void setHoraCanarias(Date ahora) {

ahora = new Date();

ahora.setHours(ahora.getHours()-1);
b) Explica cuál es la salida de la
} ejecución del método main.

public static void main(String[] args) {

// Fecha y hora actual

Date ahora = new Date();

setHoraCanarias(ahora);

System.out.println("hora en canarias" +

ahora);

8. (septiembre 2012) Respecto al modificador final de Java, contesta de


forma razonada a las siguientes preguntas:
a) ¿Es posible modificar el estado de un objeto referenciado desde un
atributo final una vez establecido su valor en el constructor? Recuerda
que el estado de un objeto viene dado por el valor de sus atributos.

9. (junio 2012) Sobre constructores en Java, responde justificadamente:

a) En la implementación de un constructor, indica cómo podemos reutilizar otro


constructor.
b) Si una clase ofrece solo un constructor, ¿debe ser el constructor sin
parámetros?

10. (septiembre 2011) Indica si las siguientes afirmaciones son verdaderas o


falsas justificando la respuesta:
a) Un método de clase no puede manipular objetos, sólo atributos de clase,
por tanto no puede recibir objetos de la clase como parámetro.

S-ar putea să vă placă și