不是的,Java中的static也是被实例共享的。public class Dog
{
static String kind = "mammal"
String name = ""
Dog(String name){
this.name = name
}
public static void main(String[] args)
{
Dog wangcai = new Dog("旺财")
Dog bagong = new Dog("八公")
System.out.println(wangcai.kind)
System.out.println(bagong.kind)
wangcai.kind = "test"
// 且Java中是绝对共享的,即一个实例修改static的变量,会影响到其它实例
// 而Python则不是绝对的,在Python中,只有使用类.属性修改才会影响全部, 但是如果同时使用类和实例去修改,则实例的修改会覆盖类的修改。
System.out.println(wangcai.kind)
System.out.println(bagong.kind)
}
}
Python代码如下:class Dog:
kind = 'mammal' # 类变量被所有实例共享
def __init__(self, name):
self.name = name
wangcai = Dog('旺财')
bagong = Dog('八公')
Dog.kind = 'aaaa'
print(wangcai.kind) # aaaa
print(bagong.kind) # aaaa
wangcai.kind = 'test'
print(wangcai.kind) # test wangcai.kind覆盖了Dog.kind
print(bagong.kind) # aaaa
print(wangcai.name) # 旺财
print(bagong.name) # 八公