this关键字
什么是局部变量?什么是成员变量?
-
定义的位置不一样【重点】
局部变量:在方法的内部
成员变量:在方法的外部,直接写在类当中 -
作用范围不一样【重点】
局部变量:只有方法当中才可以使用,出了方法就不能再用了
成员变量:整个类都可以通用 -
默认值不一样【重点】
局部变量:没有默认值,如果要想使用,必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样 -
内存的位置不一样(了解)
局部变量:位于栈内存
成员变量:位于堆内存 -
生命周期不一样(了解)
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象的创建而诞生,随着对象被垃而消失
this关键字的作用
package oop.A_04_Gjz.THIS;
/**
* 局部变量和成员变量
1)局部变量是定义在方法中的
成员变量是定义在类中的
2)局部变量只能在声明它的方法中使用
成员变量能在类中的所有方法中使用
3)局部变量和成员变量可以重名
局部变量具有更高的优先级
4)如果想在方法中访问同名的成员变量
需要在变量名前加this.
this关键字
1)什么是this关键字
是对象在程序中对自身的引用
2)this的使用
2.1)this.属性
调用当前对象的属性
2.2)this.方法名()
调用当前对象的方法
2.3)this()
调用当前类构造
必须编写在当前类构造方法中的第一行
* @author Administrator
*
*/
public class Person {
//成员变量name age
private String name;
private int age;
Person()
{
//this("张三");
this.name="张三";
}
Person(String name){
//通过this关键字访问一个成员变量,可以解决局部变量名称冲突问题
this.name=name;//访问有参构造方法
}
void speak() {
// TODO Auto-generated method stub
System.out.println(name+":"+age);
}
public static void main(String[] args) {
Person per=new Person("小黑");
per.speak();
Person per1=new Person();
per1.speak();
}
}