面向对象
面向过程:“我该怎么做”。
面向对象:“我该让谁来做”谁便是你的对象,没有对象时创造对象,创造对象额过程便是面向过程。
成员变量与局部变量的区别
- 定义的位置
成员变量,定义在类中,方法外
局部变量,定义在方法内,语句内 - 作用域的不同
成员变量,作用范围是整个类
局部变量,只作用在方法内语句内 - 默认值的不同
成员变量,有自己的默认值
局部变量,没有默认值,不赋值不能使用 - 内存位置不同
成员变量,跟随对象进入堆内存中存储
局部变量,跟随自己的方法静茹栈内存中 - 生命周期不同
成员变量,跟随对象在堆中储存,内存等待JVM清理,生命周期相对较长
局部变量,跟随方法,方法出栈,生命周期相对较长
this关键字
class Person {
private int age;
private String name;
public void speak() {
this.name = "哈哈";
this.age = 16;
System.out.println("name=" + this.name + ",age=" + this.age);
}
}
class PersonDemo {
public static void main(String[] args) {
Person p = new Person();
p.speak();
}
}
如果没有this.因为就近原则将会打印局部变量,而不会打印成员变量。
this——本类的对象引用,
-
用于区分同名的成员变量于局部变量
那个对象调用的this就代表那个对象,p对象,调用speak()方法,调用者是p对象speak()方法中的this,this相当于是得到了p中保存的地址。 -
还可以调用自身对象的有参构造方法,必须为无参构造方法代码的第一行