面向对象
2019-04-19 本文已影响0人
hjk
局部变量
形式参数,方法体变量,代码块变量
- 栈:局部变量的存储
- 堆:对象的存储,对象的垃圾回收由虚拟机来控制。我们不能控制,我们只能通过引用去使用对象。
成员变量
成员变量:类变量和实例变量。类变量可以由类和实例调用,但是不建议使用实例来调用,实例变量属于对象,只能用对象来调用
实例变量和类变量的区别?
- 生命周期间不同。
static
- 本质上定义了变量和方法属于类还是对象,static修饰的变量和方法存放在一个特定的内存区域(方法区)(共享数据区)jdk1.8实际已经改变,独立于对象存在,这样可以节约空间,还所以可以实现线程共享。
- 修饰的成员优于对象存在,因为static的成员随着类加载就已经存在了。所以static不可以访问非静态变量,应为此时对象甚至都没有产生。
- 使用方法:类名.静态成员
- static存储的数据是共享数据,对象中存储的是特有数据
this
最大的作用就是让类中一个方法,访问该类里的另一个方法或 Field。
public class Dog{
public void jump(){
......
}
public void run(){
this.jump();
}
this可以省略。即便是省略,也是一种假象。对于 static 修饰的方法而言,则可以使用类来直接调用该方法,如果在 static 修饰的方法中使用 this关键字,则这个关键字就无法指向合适的对象。所以,static 修饰的方法中不能使用 this 引用。由于 static修饰的方法不能使用 this 引用,所以 static 修饰的方法不能访问不使用 static 修饰的普通成员,因此 Java语法规定:静态成员不能直接访问非静态成员。
方法
Java就没有函数一说,方法不能独立存在,只能属于一个类或者一个对象。