Java - Cómo puedo agregar el atributo de una clase a otra?

 
Vista:

Cómo puedo agregar el atributo de una clase a otra?

Publicado por Alfonso Esteban (1 intervención) el 01/11/2022 10:40:40
Buenos días,
Estoy haciendo una tarea para POO en mi carrera y me he encontrado con una cosa que quizás por falta de práctica no he sabido desarrollar.

Digamos que tengo una clase con un atributo de tipo entero y dentro de esta misma clase una funcion(vamos a llamarla comprobarint(int numero)) que dependiendo una condicion y tomando el atributo entero como parametro devuelve true o false.

Si quisiera declarar otra clase donde un atributo fuese un booleano y en su construccion estableciera que el valor de ese atributo fuese el resultado de comprobarint(int numero)?. La gracia de esta pregunta es que en esta clase nueva no hay ningún entero, si no que el entero debería tomarse de la clase anterior que tiene un entero como atributo
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cómo puedo agregar el atributo de una clase a otra?

Publicado por Kabuto (1381 intervenciones) el 01/11/2022 11:49:57
Bueno, pero la "segunda clase" no necesita acceder a ningún entero. Ella necesita que le pasen un booleano, y eso booleano lo calcula la "primera clase" que es la única que necesita disponer de un entero.

Vamos a hacer un ejemplo.
Tenemos Clase1, con un entero como atributo y un método que recibe otro entero y retornar true/false según si el entero recibido coincide con el atributo.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Clase1 {
 
	private int miEntero;
 
	public Clase1(int entero) {
		miEntero = entero;
	}
 
	public boolean comprobarInt(int entero) {
		return entero == miEntero;
	}
 
}

Luego tenemos a Clase2, cuyo atributo es un boolean.
Este boolean lo recibe por constructor y no necesita saber de donde viene, ni cómo se calcula, ni que variables intervienen ni nada...
Solo quiere que le digan si TRUE o si FALSE.
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Clase2 {
 
	private boolean miBooleano;
 
	public Clase2(boolean booleano) {
		miBooleano = booleano;
	}
 
	public void valorMiBooleano() {
		System.out.println("Mi boolean tiene valor: " + miBooleano);
	}
 
}

Y ahora las ponemos a prueba.
Declaramos un objeto de Clase1 y otro de Clase2. Este último se inicializa a partir del boolean que retorna el método de Clase1
Pero como hemos dicho, no necesita conocer el valor del entero de la "primera clase" ni nada, le basta con recibir el resultado.
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Prueba {
 
	public static void main(String[] args) {
 
		Clase1 c1 = new Clase1(12);
 
		Clase2 c2 = new Clase2(c1.comprobarInt(10));
 
		c2.valorMiBooleano();
 
	}
 
}

Al ejecutar,en pantalla parece estar todo bien:
1
Mi boolean tiene valor: false

No se si esto resuelve el tema, o quizás yo no he entendido bien tu duda. En ese caso plantéala de nuevo.

Un saludo.
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