Hola, estoy haciendo un programa pero tengo un error en la implementación de mi código y no se cual es, lo que pasa es que escogiendo la opción 2(Mostrar Inmuebles), sale para cada inmueble el mismo propietario.
Estas son las Clases
Verán, al momento ingresar a la opción 2 después de haber llenado 2 inmueble sale algo así:
Estas son las Clases
Código (java) [Seleccionar]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class TestPropietario {
private static Inmueble ArregloI[]=new Inmueble[5];
public static void Imprimir(int Pos) throws IOException{
System.out.println("\nPropietario " + ArregloI[Pos].getMiPropietario().getNombreCompleto() + ":\n");
System.out.println("Estado " + ArregloI[Pos].getEstado() + "\n");
}
public static int MenuPrincipal() throws IOException{
int Opcion=0;
BufferedReader Lector = new BufferedReader(new InputStreamReader(System.in));
String Capturar;
System.out.println("\n1. Ingresar un inmueble\n");
System.out.println("2. Mostrar Inmuebles\n");
System.out.println("3. Salir\n");
Capturar= Lector.readLine();
Opcion=Integer.parseInt(Capturar);
return Opcion;
}
public static void main(String[] args) throws IOException{
int OpcionM=0, Cont=0;
Propietario AuxProp= new Propietario(null, null);
String Estado = null;
BufferedReader Lector = new BufferedReader(new InputStreamReader(System.in));
String Capturar;
for(int i=0; i<5; i++)
ArregloI[i]= new Inmueble();
while(OpcionM!=3){
OpcionM=MenuPrincipal();
switch(OpcionM){
case 1:
System.out.println("Ingrese el Estado del Inmueble (Libre - Ocupado)");
Capturar= Lector.readLine();
Estado=Capturar;
System.out.println("Ingrese el Nombre del Propietario");
Capturar= Lector.readLine();
AuxProp.setNombreCompleto(Capturar);
System.out.println("Ingrese el numero de telefono del propietario");
Capturar= Lector.readLine();
AuxProp.setTelContac(Capturar);
if(Cont<5){
ArregloI[Cont].Llenar(Estado, AuxProp);
Cont+=1;
}
else
System.out.println("Ha llegado al límite máximo de Inmuebles");
break;
case 2:
for(int i=0; i<5; i++)
Imprimir(i);
break;
case 3:
break;
}
}
}
Código (java) [Seleccionar]
public class Propietario {
private String NombreCompleto;
private String TelContac;
public Propietario(String nombreCompleto, String telContac) {
NombreCompleto = nombreCompleto;
TelContac = telContac;
}
public String getNombreCompleto() {
return NombreCompleto;
}
public void setNombreCompleto(String nombreCompleto) {
NombreCompleto = nombreCompleto;
}
public String getTelContac() {
return TelContac;
}
public void setTelContac(String telContac) {
TelContac = telContac;
}
}
Código (java) [Seleccionar]
public class Inmueble {
private String Estado;
private Propietario MiPropietario=new Propietario(null, null);
public void Llenar(String Estado, Propietario MiPropietario){
setEstado(Estado);
setMiPropietario(MiPropietario);
}
public Inmueble() {
}
public String getEstado() {
return Estado;
}
public void setEstado(String estado) {
Estado = estado;
}
public Propietario getMiPropietario() {
return MiPropietario;
}
public void setMiPropietario(Propietario miPropietario) {
MiPropietario = miPropietario;
}
}
Verán, al momento ingresar a la opción 2 después de haber llenado 2 inmueble sale algo así: