gpt4 book ai didi

java - 声明变量时使用 static

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

我想问一下static的效果:我做了一个类music,并在声明我的音乐类变量时使用了static。但是当我运行主类来打印音乐数据时,它总是打印出与我在主类中输入的最后一个数据相同的值。

我的类音乐:

private static  String name, genre;
private static int price;

public music(String a, String b, int c){
name = a;
genre = b;
price = c;
}

我的主类代码:

music a1 = new music("A","A",1);
music a2 = new music("B","B",2);
music a3 = new music("C","C",3);
music a4 = new music("D","D",4);

System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);

我的输出:

Music[Nama = D, Genre = D, harga = 4]
Music[Nama = D, Genre = D, harga = 4]
Music[Nama = D, Genre = D, harga = 4]
Music[Nama = D, Genre = D, harga = 4]

我知道如何修复它 - 我只需要从变量声明中删除 static - 但我想知道为什么 static 会产生如此大的差异并使我的代码错误.

最佳答案

静态变量属于该类,而不是属于该类的单个实例。因此,更新该静态成员的类的所有实例都将更新相同的变量并相互覆盖。

关于java - 声明变量时使用 static,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26992620/

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