java中的this关键字

1.this是什么?

this是一个引用类型,保存内存地址指向自身

在堆中的每一个java对象上都有this

2.this用在成员方法中: 谁去调用这个方法,this就代表谁,this指的就是当前对象(this.可以省略)

 

public class Demo01 {
	public static void main(String[] args) {
		MyDate M = new MyDate();
		System.out.println();
		
		MyDate M1 = new MyDate(2000,12);
		
		System.out.println(M1.month+"月"+M1.year+"年");
	}
	
}
	class MyDate{
		int year;
		int month;
		MyDate(){
			
		}
		MyDate(int _year,int _month){
			year = _year;
			month = _month;
		
	}
}

 

public class Demo02 {
	public static void main(String[] args) {
		Worker w1 = new Worker(21, "Garb");// 创建对象
		w1.Works();
	}
}

class Worker {
	int age;
	String name;

	Worker(int _age, String _name) {
		age = _age;
		name = _name;
	}

	public void Works() {
		System.out.println(name + "在工作");
		System.out.println(this.name+"在工作");//两行输出一样
	}

}

this可以用来区分成员变量和局部变量

this.成员变量

public class Demo03 {
public static void main(String[] args) {
	
}
}
class vss{
	int age; 
	private String name;
	void aa(int age,String name) {//成员方法
		this.name = name;
		//this.成员变量 = 局部变量
		this.age = age;
	}
    public String getName(){
    return name;
    //return this.name;实际上是这个
}
}

this不能使用在静态方法中

静态方法的执行,不需要java对象的存在,直接使用 类名. 进行访问。而this代表当前对象,所以静态方法中根本没有this。

public class Demo04 {
	public static void main(String[] args) {
		
	}
}
class person{
	String name;
	
	person (){
		
	}
		person(String name){
			this.name = name;
			
		}
	public static void m1() { 
		//System.out.println(this.name);静态方法中不能使用this
		
		person p1 = new person("lili");//静态方法中可以创建一个对象来访问name
		System.out.println(p1.name);
	}
}

this用在构造方法中---this(实参);     通过一个构造方法去调用另外一个构造方法(实现代码重用

 this必须出现在构造方法的第一行

class person{
	String name;
	int ID;
	int age;
	person(){
		this(200012,18,"lili");//实现了代码的重用
	}
	person (int _ID,int _age,String _name){
		ID = _ID;
		age = _age;
		name = _name;
	}
		

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值