3 回答
TA贡献1811条经验 获得超5个赞
public Objetos (String nombre, int adicion){
adicion = adicion;
nombre = nombre;
}
这不会设置您的班级成员。adicion并且nombre是该构造函数的本地。如果你想让它设置对象的成员,你需要使用this:
public Objetos (String nombre, int adicion){
this.adicion = adicion;
this.nombre = nombre;
}
请学习如何使用调试器。您可以在代码运行时逐行单步执行,并查看所有值和对象以了解发生了什么。
TA贡献1806条经验 获得超5个赞
您需要objetos_inv.get(index)获取特定对象,还需要使用类属性来获取要打印的确切值。
我准备了一个小演示,可以帮助您了解如何打印正确的输出。
import java.util.ArrayList;
import java.util.List;
public class HelloWorld{
static List<Objectos> objetos_inv = new ArrayList<Objectos>();
static Objectos potion = new Objectos("Potion", 20);
public static void main(String []args){
modoHistoria();
}
public static void modoHistoria(){
objetos_inv.add(potion);
System.out.println(objetos_inv.get(0).getNombre());
// Or you have override toString() as @RealSkeptic mentioned in his comment So you can also directly print.
System.out.println(objetos_inv.get(0));
}
}
class Objectos{
private String nombre;
private int adicion;
public Objectos(){};
public Objectos(String nombre, int adicion){
this.nombre = nombre;
this.adicion = adicion;
}
public void setNombre(String nombre){
this.nombre = nombre;
}
public String getNombre(){
return nombre;
}
@Override
public String toString() {
return nombre;
}
public void setAdicion(int adicion){
this.adicion = adicion;
}
public int getAdicion(){
return adicion;
}
}
并且还同意@MaxVollmer 关于设置班级成员的回答。
TA贡献1826条经验 获得超6个赞
首先,在构造函数中初始化静态成员没有任何意义。而是使用静态初始化器来初始化它,因为这对于类的所有实例都是通用的。
static { nombre = "Potion"; }
添加回答
举报