Cita:
Iniciado por Fuzzylog Creo que estás confundiendo los atributos de clase con los de instancia, de todos modos.
La forma de introducir atributos sin usar get y set es a través de un nuevo constructor con los parámetros que quieres añadir:
Para eso tienes que definir el constructor en la clase que va a modificar esos atributos
Ejemplo
public Class Coche() {
private String marca;
private String modelo;
private String color;
// Constructor por defecto. NO es necesario crearlo porque ya existe al crear la clase
public Coche() {}
// Constructor con algunos parámetros, no se suelen usar, pero te los puedes encontrar
public Coche(String marca, String modelo) {
this.marca = marca;
this.modelo = modelo;
}
// Constructor completo, es el mas usado. Cuando no se quiere setear un parámetro se envía null si es un objeto o un valor predeterminado si es algún tipo primitivo
public Coche(String marca, String modelo, String color) {
this.marca = marca;
this.modelo = modelo;
this.color = color;
}
}
// Ahora puedes hacer
String marca = "UnaMarca";
String modelo = "UnModelo";
String color = "UnColor";
Coche unCoche = new Coche(marca,modelo,color); // Y ya lo crea con los datos que le pasas
// cogiendo este ejemplo, yo quiero hacer esto
public class otraClase
{
Coche dueño; <-- creo un objeto de la clase Coche
public otraClase() <-constructor vacio, inicializa atributos de la otra clase
{
dueño.marca="seat";
dueño.modelo="ibiza";
dueño.color="rojo";
}
public static void main(String args[])
{
Coche p=new Coche(); <- creo instancia,pero tengo un problema
p.verCoche(); <- yo quiero que se vean los datos creados desde el constructor
<- logicamente se ven los instanciados en P, y como en P no le puse datos, me esta cargando y cogiendo el constructor vacio.
}
entonces pense en esta segunda posibilidad
public class otraClase
{
Coche dueño; <-- creo un objeto de la clase Coche
Coche p = new Coche();
public otraClase() <-constructor de esta clase, inicializa atributos de la otra clase
{
p.setmarca("seat"); <- cargo los atributos desde set
p.setmodelo("ibiza");
p.setcolor("rojo");
}
public static void main(String args[])
{
p.verCoche(); <- tampoco funciona pq no reconoce p, y lo he puesto public el p y tampoco
}