理解java和python类变量以及类的成员变量

这篇文章主要帮助大家理解java和python类变量以及类的成员变量,用实例进行解析,感兴趣的朋友可以参考一下

public class OO{
  public static String s;
  public String m;
 
  static{
    s = "Ever";
  }
  public static void main(String[] args){
    OO o1 = new OO();
    OO o2 = new OO();
 
    o1.m = "Once";
 
    //不同实例中的类变量值/地址相同
    System.out.println(o1.s);
    System.out.println(o2.s);
    System.out.println(o1.s.hashCode());
    System.out.println(o2.s.hashCode());
 
    o1.s = "123";
    System.out.println(o2.s);//更改类变量后影响了其他实例
 
    System.out.println(o1.m.hashCode());
    System.out.println(o2.m.hashCode());//NullPointerException
    //成员变量具有不同的地址
  }
 
}
#!/bin/python
 
class B:
  def whoami(self):
    print("__class__:%s,self.__class__:%s"%(__class__,self.__class__))
 
class C(B):
  count = 0
 
  def __init__(self):
    super(C,self).__init__()
    self.num = 0
 
  def add(self):
    __class__.count += 1
    self.num += 1
 
  def print(self):
    print("Count_Id:%s,Num_Id:%s"%(id(__class__.count),id(self.num)))
    print("Count:%d,Num:%d"%(__class__.count,self.num))
 
i1 = C()
i2 = C()
i1.whoami()
i2.whoami()
#i1的成员变量增加了1次,i2的成员变量增加了2次,类变量共增加了3次
i1.add()
i2.add()
i2.add()
i1.print()
i2.print()
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容