面向对象上(知识点2)

1. 类的生命周期:类加载、类验证、类准备、类解析、类初始化

2. 成员变量和局部变量

  • 成员变量无需显示地初始化,系统会在类的准备阶段或者是在创建该类的实例的时候进行默认的初始化
  • 局部变量必须显示的进行初始化之后才可以使用。局部变量定义之后,系统不会为局部变量执行初始化,也不会为他分配内存空间。只有当程序为他赋初始值的是时候,才会分配内存,并把我们所定义的初始值保存到内存空间。
  • Java允许局部变量和成员变量同名,但是这样子的话,如果你还想要访问成员变量,则必须加上this,所以应该要尽量避免这样子的情形

例子:

class Person{
    public String name;
    public static int eyeNum;
}

如果我们这样子的去调用他:

Person p1=new Person();

Person p2=new Person();

那么在我们第一次使用person类的时候,系统会去加载这个类并初始化这个类,在类的准备阶段,系统会为该类的类变量分配内存空间,并且进行初始化,默认eyeNum为0.

每次创建该类实例的时候,都会为实例变量分配内存空间并且进行初始化,比如p1所引用的对象的name初始值就是为null。

具体的图我就不画了,去书上看吧,很详细。


猜你喜欢

转载自blog.csdn.net/weixin_35110513/article/details/80263355