Java this关键字

package stage1;

/*
 * this 关键字
 * this 存储在堆内存的对象中,保存了一个指向该对象的地址
 * this 是一个引用&变量
 * this 不能用在带static 的方法中
 * 没有关键字static 的方法被称为实例方法
 * 没有关键字static 的变量被称为实例变量
 * 实例方法/变量需要通过引用访问
 * 带有static 的用类名.的方式调用
 * static 方法没有this
 * 用来区分局部变量和实例变量时this.不能省略
 * 可以直接在构造方法中用this(实参)调用另一个构造方法
 * this()只能出现在构造方法第一行
 */
public class Day008 {
	int num=0;
	static int sum=0;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Day008 dy=new Day008();
		String s="hello";
		//-----------------
		Day008.show(s);
		show(s);
		//----------------
//		Dy008 s1=new Dy008();
//		s1.name="s1";
//		s1.show();
		//不带static 用对象访问
		System.out.println(dy.num);
		//带static 用类名.的方式
		System.out.println(sum);
		//与show(String s)同理,无法直接访问fun()
		//fun();

	}
	public static void show(String s) {
		System.out.println(s);
		//不能直接访问fun()
		//fun();
	}
	//不能带String 参数,否则和带static的show冲突
	//show()是实例方法需要用引用.的方式调用
	public void show() {
		System.out.println("hello");
	}
	//调用fun()方法必须要有对象,对象中默认带有this,所以能直接调用show()
	public void fun() {
		show();
		//等同于
		this.show();
	}
	
}
class Dy008{
	String name;
	public Dy008(String s) {
		this.name=s;
	}
	public void show() {
		System.out.println(this.name);
	}
	//不能省略this的情况
	public void setName(String name) {
		//实例变量name  局部变量name
		this.name = name;
		//java 就近原则
		//name=name
	}
	//设置name 默认值mmm
	public Dy008() {
		//一下两行代码效果一样
		this("mmm");
		this.setName("mmm");
	}
	
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值