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"; }
添加回答
舉報