java中this什么时候不能省略?&this()的用法

java中this什么时候不能省略?

1.this可以使用在实例方法中,不能使用在静态方法中
2.this关键字大部分情况下可以省略,什么情况下不能省略呢?

public class Test
{
	public static void main(String[] args){
	student s =new student();
	s.setNo(1111);
	s.setName("张三");
	System.out.println("学号:"+s.getNo());
	System.out.println("姓名:"+s.getName());
	}
}



class student
{
		
	//封装变量
	private int no;	
	private String name;

	//构造方法无参
	public student(){
	
	}
	//构造方法有参(用this增强可读性)
	public student(int no,String name){
		this.no=no;
		this.name=name;
	}
	//setter写入方法
	public void setNo(int no){
		this.no=no;
	}
	public void setName(String name){
		this.name=name;
	}
	//getter读取方法(用this增强可读性)
	public int getNo(){
		return no;//严格来说,这里是有一个this.的,只不过省略了
	}
	public String getName(){
		return name;//严格来说,这里是有一个this.的,只不过省略了
	}
}

在实例方法中,或者在构造方法中,为了增强代码可读性
这种情况下:this是不能省略的。

this()的用法(这个用的还是挺多的)

  1. this()语法的作用是什么?美观,节省代码。
    代码复用,通过一个"构造方法1"调用另一个"构造方法2"。
  2. 但是需要注意的是:"构造方法1"和"构造方法2"都是在同一个类中。
  3. this()只能出现在一个构造方法中的第一行,并且只能出现一次this()。
class Data
{
	private int year;
	private int month;
	private int day;

	//无参数的构造方法
	public Data(){
		/*this.year=1997;
		this.month=2;
		this.day=8;*/
		this(1970,2,8);//调用了下面的有参数的构造方法

	}

	//有参数的构造方法
	public Data(int year,int month,int day){
		this.year=year;
		this month=month;
		this day=day;
	}
}

总结

  1. this是一个关键字。
  2. this可以使用在实例方法中,也可以使用在构造方法中
  3. this出现在实例方法中其实代表的是当前对象
  4. this不能使用在静态方法中
  5. this大部分情况下可以省略,但是用来区分局部变量和实例变量的时候,不能省略
  6. this()这种语法稚嫩出现在构造方法第一行,表示当前构造方法调用本类的构造方法,目的是代码服用
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值