this和super关键字

java基础

**

this和super关键字

**

在java里,这个this和super我们学习过程中很容易把这俩忽略掉!!!

      此篇博客将对this和super关键字进行剖析。将this和super放在同一块是因为这两需要进行对比分析!!!

this:

    位置:构造器内、方法内

    作用:像它的意思。表示当前对象,可以用来调用属性、方法和构造器。

来段我们熟悉的pojo类


class A{

    private int id;

    protected String name;

    public String sex;

    public A(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
		this.talk();
    }

    public A(){
        
    }

	void talk(){
    	System.out.println(id+name+sex);
    }

}

这个类,我们随便双击一个this.后面的那个看一看

我们发现,这个this.name就是上面String 那么中的name 也是我们talk()里的name

我给talk加了一个this.但都一样

所以这里的this就是当前对象的意思。

注意:

    1、我们方法里一般没写this.是因为这个可以省略,但在方法里直接写的name和this.name是一样的

    2、this()     this.name     this.talk()

这三者的区别一目了然。一个是当前构造方法,一个是当前类的字段,一个是当前类的方法

    3、其他不急,先看super

super:

    位置:构造器内、方法内

    作用:同this,不过表示的是父类的对象

对比this和super

    1、this()和super()在位于构造方法内有效代码第一行

由此可知,一个构造器只能有一个this()或super(),且this和super不能共在


public class B extends A{

	public B(){
		super();	
	}

	public B(){
		this();
	}

	//	  public B(){ 	
	//	  	  super();
	//	  	  this();	错误
	//	  }

	//	  public B(){
	//	  	  this();
	//	  	  this();	错误
	//	  }

}

    2、成员方法不能调用构造函数

    3、构造方法不能互相调用

最后,我们要知道的是

1.我们在类里方法内直接写属性一般是省略this.的

2.对于我们父子类同名属性时,使用super.和this.可以将属性区分开,默认则是this。

3.用super调用父类方法,用this调用本类方法,默认this

4.使用super和this不牵扯任何实例化过程,也不加杂对象操作。因为this就代表的是当前对象,super没这个概念。

其实,this和super这里我们一般确实关注不多,我们对它代表什么意义和怎么用了解就行,重要的则是后面的一些东西。

返回 》
接口抽象类

下一篇


final和static关键字


面向对象——多态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值