Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Omar_2013 en 18 Febrero 2015, 21:30 PM

Título: Arreglo de inmuebles
Publicado por: Omar_2013 en 18 Febrero 2015, 21:30 PM
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

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í:

(http://thumbs.subefotos.com/48206a972d2c7860b430085a3dc642a1o.jpg) (http://subefotos.com/ver/?48206a972d2c7860b430085a3dc642a1o.png)
Título: Re: Arreglo de inmuebles
Publicado por: Usuario Invitado en 18 Febrero 2015, 22:47 PM
Primero tienes que entender bien la POO para poder aplicarla. Te explicaré un poco.

Ésta línea:

Código (java) [Seleccionar]
Propietario AuxProp= new Propietario(null, null);

Lo que hace es crear una instancia de la clase Propiertario. A partir de ahora, AuxProp es un objeto que guarda una referencia. Hay dos estados en la creación de objetos:

Título: Re: Arreglo de inmuebles
Publicado por: Omar_2013 en 18 Febrero 2015, 22:54 PM
Wow que tremenda explicación ;-)  muchas gracias por tu tiempo Gus Garsaky.
Título: Re: Arreglo de inmuebles
Publicado por: Usuario Invitado en 18 Febrero 2015, 23:12 PM
De nada amigo mío, cuando gustes ^^

Un salu2.