Java - duda para examen

 
Vista:
sin imagen de perfil
Val: 89
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

duda para examen

Publicado por jose maria (85 intervenciones) el 22/08/2016 11:07:14
buenas, estoy repasando para un examen que tendré a principios de septiembre y repasando de anteriores preguntas me surge una duda sobre una de ellas... os digo su enunciado:
"siendo Cpadre una clase padre de Chija, ambas con el atributo nombre tipo string declarado como publico, ¿que imprimirá el siguiente código?"
Cpadre p=new Cpadre();
Chija h=new Chija();
h.nombre="juan";
p.nombre="pepe";
system.out.println (h.nombre);

posibles respuestas:

a) pepe
b) juan
c) una exepcion
d) null

yo pienso que sera una exepcion ¿estoy en lo cierto?
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

duda para examen

Publicado por Pedro (1 intervención) el 22/08/2016 11:51:22
Hola, Jose María.

Según los datos, tienes dos clases y el main del programa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Cpadre {
    public String nombre;
}
 
public class Chija extends Cpadre{
 
}
 
public static void main(String[] args) {
	Cpadre padre = new Cpadre(); //En lugar de 'p', le pongo de nombre "padre"
	Chija hija = new Chija(); //En lugar de 'h', le pongo de nombre "hija"
	padre.nombre = "juan";
	hija.nombre = "pepe";
 
	System.out.println(padre.nombre);
}

Partiendo de este código podemos ver las clases padre e hija, teniendo la clase padre el string público <nombre>. En la clase hija, como queremos que extienda la clase padre, no necesitaremos declararlo (porque lo heredará). Eso significa que Chija tendrá una propiedad string pública cuyo identificador será <nombre>.

Lo que estás haciendo en el main es asignar valores a esas propiedades, independientes una de otra (siendo una variable pública, <padre.nombre> e <hija.nombre> son distintas), lo que hará que el resultado de hacer <<system.out.println(padre.nombre)>>; sea exactamente el valor que le fue añadido al principio.

No hay ningún error ni excepción en el código. Adjunto imágenes que muestran el proceso y el resultado del programa.

1
2
3
4

Un saludo,
Pedro Herrero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 89
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

duda para examen

Publicado por jose maria (85 intervenciones) el 22/08/2016 12:51:03
hummmm, yo pensaba que daría error por el hecho de la herencia y declarar los objetos ¡no había caído en la clase main....!
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar