亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Array 獲取空輸出

從 Array 獲取空輸出

慕姐8265434 2023-03-31 14:34:43
我正在嘗試打印一個填充了一些對象的數組,但得到的是空輸出。該數組在我的主類中以滿足范圍需求public class Main {   static ArrayList<Objetos> objetos_inv = new ArrayList<Objetos>();在另一個類中,我想在其中添加、檢索和打印數組及其對象:public class ModoHistoria {static Objetos potion = new Objetos("Potion", 20);    public static void modoHistoria(){       for(int i = 0; i < 4; i++){       }    System.out.println(objetos_inv);    }我Objetos班級的變量是nombre和adicion:public class Objetos {    static String nombre;    static int adicion;    public Objetos (String nombre, int adicion){        adicion = adicion;        nombre = nombre;    }  public void setNombre (String nombre){        nombre = nombre;    }      @Override    public String toString() {    return nombre;  }    public String getNombre(){        return nombre;    }    public void setAdicion (int adicion){        adicion = adicion;    }    public int getAdicion(){        return adicion;    }}輸出:[null, null]
查看完整描述

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;

}

請學習如何使用調試器。您可以在代碼運行時逐行單步執行,并查看所有值和對象以了解發生了什么。


查看完整回答
反對 回復 2023-03-31
?
忽然笑

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 關于設置班級成員的回答。


查看完整回答
反對 回復 2023-03-31
?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

首先,在構造函數中初始化靜態成員沒有任何意義。而是使用靜態初始化器來初始化它,因為這對于類的所有實例都是通用的。

static {  
     nombre = "Potion";
}


查看完整回答
反對 回復 2023-03-31
  • 3 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號