this关键字

一丶
1.this是一个关键字,全部小写。
2.this是什么?在内存方面是怎样的,?
(1)一个对象一个this,
(2)this是一个变量,是一个引用。,this保存当前对象的内存地址,指向自身。
(3)所以严格意义 上来说,this代表的就是”当前对象”
(4)this存储在堆内存当中对象的内部在这里插入图片描述

3.this只能使用在实例方法当中,谁调用这个方法,this就是谁,
所以this代表的是当前对象。
4.this.大部分情况下是可以省略的。

super和this对比着学习

this:

this能出现在实例方法和构造方法当中
this的语法是:this.和this()
public class TextSuper {
    public static void main(String[] args) {

        new B();
    }


}

class A {
    public A(){
        System.out.println("A类的无参数构造方法");
    }
}

class B extends A{

    public B(){
          this("zhangsan");
        System.out.println("B类的无参数构造方法");

    }
    public B(String name){
        System.out.println("我叫张三");
    }

}

this不能使用在静态方法当中。
this.大部分情况下是可以省略的,什么时候不能够省略呢?在区分实例变量和局部变量的时候时,this不能够省略。
this()只能出现在构造方法的第一行,通过当前的构造方法去调用“本类”中其他的构造方法,目的是代码复用。

super:
super能出现在实例方法和构造方法当中
super的语法是:super.和super()
super不能使用在静态方法当中。
super.大部分情况下是可以省略的,什么时候不能够省略呢?????
super()只能出现在构造方法的第一行,通过当前的构造方法去调用“父类”中其他的构造方法,目的是代码复用。

public class TextSuper {
    public static void main(String[] args) {

        new B();
    }


}

class A {
    public A(){
        System.out.println("A类的无参数构造方法");
    }
}

class B extends A{
    
    public B(){
        System.out.println("B类的无参数构造方法");
    }
  
}

A类的无参数构造方法
B类的无参数构造方法 (输出结果)

以上程序模拟的就是现实生活中要想有儿子,就要先有父亲的例子。

super()的用法:
(1)一个类如果手动提供了一个有参数构造方法,则系统不再提供无参数构造方法。
(2)当一个构造方法第一行既没有this(),又没有super(),则默认有一个super(),表示当前子类通过构造方法调用父亲的无参数构造方法,所以必须保证父类的无参数构造方法是存在的。
(3)this()和super()不能够共存,它们都只能出现在构造方法的第一行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值