gpt4 book ai didi

java - 从Java中的另一个对象获取空值,但在自己的类中获取值

转载 作者:行者123 更新时间:2023-12-01 12:12:24 24 4
gpt4 key购买 nike

当我尝试执行此代码时,在选择 AMD 后,我得到了 null 值。怎么会发生呢?下面是源代码:
[主要]

public class processor{
public int hargapro;
public String nmbarangpro;
public static final Scanner input = new Scanner(System.in);
public String getpro()
{
return nmbarangpro;
}
public int getproharga()
{
return hargapro;
}
public void daftarpro() {
List<String> daftarpro = new ArrayList<>();
daftarpro.add("AMD");
daftarpro.add("Intel");
List<String> nomer = new ArrayList<>();
nomer.add("1. ");
nomer.add("2. ");
System.out.println("Processor yang tersedia :");
for (int i = 0; i < daftarpro.size(); i++) {
System.out.println(nomer.get(i)+daftarpro.get(i));
}
System.out.println("Pilihan anda : ");
int pilih = input.nextInt();
switch(pilih)
{
case 1:
{
System.out.println("Anda membeli Processor AMD");
System.out.println("Seharga Rp 1.200.000");
harga(1200000); //call harga method
namabarang("AMD"); //call namabarang method
System.out.println(getpro()); //[for testing]filled with AMD[ni problem here]
System.out.println(getproharga()); //[for testing][filled with 1200000[no problem here]
break;
}
case 2:
{
System.out.println("Anda membeli Processor AMD");
System.out.println("Seharga Rp 1.200.000");
harga(1500000);
namabarang("Intel");
break;
}
default:
System.out.println("Pilihan tidak tersedia");
daftarpro();
}

}
@Override
public int harga(int hargamasuk) {
return hargapro = hargamasuk;


}

@Override
public String namabarang(String barang) {
return nmbarangpro = barang;
}
public static void main(String[] args) {
processor a = new processor();
a.daftarpro();//get menu from daftarpro()
kasir x = new kasir();
x.semua();//get null in value
}
}

我的第二个文件:

public class kasir {
public void semua()
{
processor a = new processor();
System.out.println(a.getpro());
}}

当我尝试通过 kasir 类读取值时,我得到 x.semua 填充空值。这是怎么发生的?

最佳答案

您的 semua 方法创建一个 processor 的新实例,然后从中读取:

public void semua()
{
processor a = new processor();
System.out.println(a.getpro());
}

这与您在 main 方法中创建的 processor 实例完全无关。如果您的 kasir 类在逻辑上应该“了解”另一个 processor 实例,那么您可能需要在类中添加一个 processor 字段,您可以填充该字段通过构造函数 - 所以你的 main 方法可能会变成:

public static void main(String[] args) {
processor a = new processor();
a.daftarpro();
kasir x = new kasir(a);
x.semua();
}

顺便说一句,您应该真正尝试遵循 Java 命名约定,例如 ProcessorKasir 类以及 getPro 方法等等(如果您的代码实际上在编辑器中看起来像这样,我建议您也重新格式化它......)

关于java - 从Java中的另一个对象获取空值,但在自己的类中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27201039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com