ArrayList como atributo de una clase
Publicado por Damiana (2 intervenciones) el 05/09/2021 00:46:08
Buenas amigos programadores, yo estoy comenzando y tengo un problema, Tengo dos clases entidades (Persona y Perro) y Perro además de clase es un atributo de Persona o sea tienen una relación. Aparte hice un Enum para Tamaño del perro. Mi Problema es que le asigna la misma lista de perro a las dos personas que cree, Quiero hacer que a la persona p1 le asigne dos perros y a la persona p2 un perro.
Clase Persona
.import java.util.ArrayList;
import java.util.List;
/**
*
* @author damiana
*/
public class Persona {
private String nombre;
private String apellido;
private String dni;
private ArrayList<Perro> mascota;
public Persona() {
}
public Persona(String nombre, String apellido, String dni, ArrayList<Perro> mascota) {
this.nombre = nombre;
this.apellido = apellido;
this.dni = dni;
this.mascota = mascota;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getDni() {
return dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public List<Perro> getMascota() {
return mascota;
}
public void setMascota(ArrayList<Perro> mascota) {
this.mascota = mascota;
}
@Override
public String toString() {
return "Persona{" + "nombre=" + nombre + ", apellido=" + apellido + ", dni=" + dni + ", mascota=" + mascota + '}';
}
Clase Perro
import relacionesej1.tamaño.Tamaño;
/**
*
* @author damiana
*/
public class Perro {
private String nombre;
private String raza;
private Integer edad;
private Tamaño tamaño;
public Perro() {
}
public Perro(String nombre, String raza, Integer edad, Tamaño tamaño) {
this.nombre = nombre;
this.raza = raza;
this.edad = edad;
this.tamaño = tamaño;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getRaza() {
return raza;
}
public void setRaza(String raza) {
this.raza = raza;
}
public Integer getEdad() {
return edad;
}
public void setEdad(Integer edad) {
this.edad = edad;
}
public Tamaño getTamaño() {
return tamaño;
}
public void setTamaño(Tamaño tamaño) {
this.tamaño = tamaño;
}
@Override
public String toString() {
return "Perro{" + "nombre=" + nombre + ", raza=" + raza + ", edad=" + edad + ", tama\u00f1o=" + tamaño + '}';
}
Clase Main
import java.util.ArrayList;
import relacionesej1.tamaño.Tamaño;
/**
*
* @author damiana
*/
public class Relacionesej1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList<Perro>mascota= new ArrayList();
Persona p1= new Persona();
p1.setApellido("Rodriguez");
p1.setDni("23456443");
p1.setNombre("Lorenza");
Persona p2= new Persona();
Perro d1= new Perro();
d1.setEdad(2);
d1.setNombre("Abbey");
d1.setRaza("mixto");
d1.setTamaño(Tamaño.MEDIANO);
Perro d2= new Perro();
d2.setEdad(3);
d2.setNombre("Julian");
d2.setRaza("Cocker");
d2.setTamaño(Tamaño.PEQUEÑO);
mascota.add(d1);
mascota.add(d2);
p1.setMascota(mascota);
Perro d3= new Perro();
d3.setEdad(4);
d3.setNombre("Fede");
d3.setRaza("caniche");
d3.setTamaño(Tamaño.PEQUEÑO);
mascota.add(d3);
p2.setMascota(mascota);
p2.setApellido("Gonzalez");
p2.setDni("28947362");
p2.setNombre("Gonzalo");
System.out.println(p1.toString());
System.out.println(p2.toString());
Clase Persona
.import java.util.ArrayList;
import java.util.List;
/**
*
* @author damiana
*/
public class Persona {
private String nombre;
private String apellido;
private String dni;
private ArrayList<Perro> mascota;
public Persona() {
}
public Persona(String nombre, String apellido, String dni, ArrayList<Perro> mascota) {
this.nombre = nombre;
this.apellido = apellido;
this.dni = dni;
this.mascota = mascota;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getDni() {
return dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public List<Perro> getMascota() {
return mascota;
}
public void setMascota(ArrayList<Perro> mascota) {
this.mascota = mascota;
}
@Override
public String toString() {
return "Persona{" + "nombre=" + nombre + ", apellido=" + apellido + ", dni=" + dni + ", mascota=" + mascota + '}';
}
Clase Perro
import relacionesej1.tamaño.Tamaño;
/**
*
* @author damiana
*/
public class Perro {
private String nombre;
private String raza;
private Integer edad;
private Tamaño tamaño;
public Perro() {
}
public Perro(String nombre, String raza, Integer edad, Tamaño tamaño) {
this.nombre = nombre;
this.raza = raza;
this.edad = edad;
this.tamaño = tamaño;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getRaza() {
return raza;
}
public void setRaza(String raza) {
this.raza = raza;
}
public Integer getEdad() {
return edad;
}
public void setEdad(Integer edad) {
this.edad = edad;
}
public Tamaño getTamaño() {
return tamaño;
}
public void setTamaño(Tamaño tamaño) {
this.tamaño = tamaño;
}
@Override
public String toString() {
return "Perro{" + "nombre=" + nombre + ", raza=" + raza + ", edad=" + edad + ", tama\u00f1o=" + tamaño + '}';
}
Clase Main
import java.util.ArrayList;
import relacionesej1.tamaño.Tamaño;
/**
*
* @author damiana
*/
public class Relacionesej1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList<Perro>mascota= new ArrayList();
Persona p1= new Persona();
p1.setApellido("Rodriguez");
p1.setDni("23456443");
p1.setNombre("Lorenza");
Persona p2= new Persona();
Perro d1= new Perro();
d1.setEdad(2);
d1.setNombre("Abbey");
d1.setRaza("mixto");
d1.setTamaño(Tamaño.MEDIANO);
Perro d2= new Perro();
d2.setEdad(3);
d2.setNombre("Julian");
d2.setRaza("Cocker");
d2.setTamaño(Tamaño.PEQUEÑO);
mascota.add(d1);
mascota.add(d2);
p1.setMascota(mascota);
Perro d3= new Perro();
d3.setEdad(4);
d3.setNombre("Fede");
d3.setRaza("caniche");
d3.setTamaño(Tamaño.PEQUEÑO);
mascota.add(d3);
p2.setMascota(mascota);
p2.setApellido("Gonzalez");
p2.setDni("28947362");
p2.setNombre("Gonzalo");
System.out.println(p1.toString());
System.out.println(p2.toString());
Valora esta pregunta


0