Java小篆之this&static&初始化

this

this代表——对象

  • 是一个指代,指代调用者本身,哪个对象在调用this所在的函数,this就代表哪个对象
  • 好多this省略掉了,如果show()相当于说毕老师,那么this.show()就相当于说,传智播客的毕老师。

  • this是一个对象的引用,,跟一个对象的别名p一样,如果指代某一个对象的话,里面存放的是一个地址值,指向那个对象。

  • 构造函数间调用,只能用this语句,注意,这边的this不表示person这个单词的省略,this还是表示对应的对象。
    Java小篆之this&static&初始化_第1张图片

static

static——类变量,被对象所共享
1.多个对象中存在相同的数据的值,就设为静态,共享,节省内存,每个对象所特有的数据,值就随着每个对象自身存储,
2.被修饰为static之后就上升为类的东西了,随着类的加载而加载,优先于对象的存在,
3.静态变量可以直接被类所调用,
4.静态的都放在方法区(共享区)里,
5.static使用注意:

  • 静态方法只能访问静态成员,因为这个时候非静态的变量属于对象,而对象还没被类创建,内存中根本没有这个变量,怎么访问
  • 非静态方法既可以访问静态,也可以访问非静态
  • 静态方法中不可以定义this,super关键字,因为静态方法优先于对象存在
  • 通常情况下工具类定义的都是静态方法,然后这些静态方法直接用类来调用,其他类也可以调用这个类里面的方法

构造函数&静态代码块&构造代码块

  1. 静态代码块——给类初始化的
    Java小篆之this&static&初始化_第2张图片

  2. 构造代码块——给对象初始化的
    这里写图片描述

  3. 构造函数——给对象初始化赋值的

Java小篆之this&static&初始化_第3张图片
new一个对象,按照静态代码块,构造代码块,构造函数的顺序初始化
Java小篆之this&static&初始化_第4张图片

理一下关系
Java小篆之this&static&初始化_第5张图片
最后,调用都要有东西调用的,非静态省略的this.,静态省略的是类名.
 ̄□ ̄||GG。。。。

你可能感兴趣的:(Java)