this关键字
person类
package com.hpe.demo;
//打招呼
public class Person {
protected boolean id;
private String name;//自己名字
private int age;//年龄
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
//打招呼
public void sayHello(String name){//对方的名字
System.out.println(this.name+"对"+name+"说:小老弟,来跟华子!");
this.eat();
}
//成员方法
public void eat(){
System.out.println("人吃饭");
this.age=12;//this.age=12;
}
public Person(){
this("张三"); /
System.out.println("Person类的无参构造方法");
}
public Person(String name){
this(19);
this.name=name;//改成了张三
System.out.println("Person类带name参数的构造方法");
}
public Person(int age){
this("李四",18);
this.age=age;//改成了19
System.out.println("Person类带age参数的构造方法");
}
public Person(String name,int age){
this.name=name;
this.age=age;
System.out.println("Person类带name和age两个参数的构造方法");
}
}
测试类
package com.hpe.demo;
public class TestPerson {
public static void main(String[] args) {
//创建一个人类对象 第一次
Person p=new Person();
p.setName("尼古拉斯赵四");//给自己的名字赋值
p.sayHello("刘能");//给对方的名字赋值
//第二次
//Person p=new Person();
//System.out.println(p.getName()+":"+p.getAge());
}
}
第一次
Person类带name和age两个参数的构造方法
Person类带age参数的构造方法
Person类带name参数的构造方法
Person类的无参构造方法
尼古拉斯赵四对刘能说:小老弟,来跟华子!
人吃饭
第二次
Person类带name和age两个参数的构造方法
Person类带age参数的构造方法
Person类带name参数的构造方法
Person类的无参构造方法
张三:19
理解:
- 成员变量和局部变量出现重名时,方法会根据“就近原则”使用局部变量的值,
- 如果想区分成员变量和局部变量我们可以使用this关键字
- *格式:
*this.成员变量
*
*什么是this?
*1.this代表当前使用的对象或者是正在创建的对象,那个对象调用了方法谁就是this
*2.this可以修饰成员变量、方法、构造方法 直接在成员变量名或者成员方法名前面加上this
*3.可以在构造方法中通过"this(形参)"的方式调用本类其他构造方法
*注意:在构造方法内部this(“形参”)必须放在首行 - 如果一个类里面有N个构造方法,那么最多有n-1个构造方法内部使用了this()
this不能使用在静态方法,main方法也是静态方法。
静态方法是在类加载时,而对象