java this关键字和super关键字用法详解

本文深入探讨了Java中的关键字`this`和`super`的使用。`this`用于引用当前对象实例,常用于访问成员变量、调用成员方法及构造方法。而`super`关键字则用于访问父类的成员,包括变量、方法和构造器。文章通过实例代码展示了它们在不同场景下的应用,并强调了它们在构造方法中的特殊用法以及不能与`this`同时使用的原则。
摘要由CSDN通过智能技术生成

#this关键字使用方法代码分析

package basic.Filea;

/**
 *  this的介绍
 *      this是一个引用,this变量保存了内存地址指向自己
 *      每一个对象都有一个this
 *      this不能出现在static静态方法中
 * 1.this的使用方法有三种
 *      a、在本类成员方法中,访问父类成员变量
 *      b、在本类成员方法中,访问本类的另一个成员方法
 *      c、在本类构造方法中,访问本类的另一个构造方法
 *     在c中,this()必须是构造方法第一行,唯一一个
 *     super()和this()调用不能同时使用,因为他们都是唯一的
    */

public class Zi extends Fu{
    int a=9;//成员变量

    public Zi() {
//        this();  自己调用自己,错误写法
        this(11);//本类的无参构造,调用本类的有参构造
    /** this(...) 必须是第一个调用唯一一个,同super()
        super和this不能同时使用
        构造方法第一行没有this()也没有super(),系统默认有一个super();
     */
    }

    public Zi(int a) {
        System.out.println(a);
    }
    public void Aone() {
        int a=1;  //局部变量
        System.out.println(a);  //1
        System.out.println(this.a);   //9 访问本类的成员变量
    }

    public void Bone(){
        System.out.println("Aone!!!");
    }

    public void Btwo() {
        this.Aone();  //访问本类的成员方法
        //this可省阅,有着强调字面作用
        System.out.println("Btwo!!");
    }
}

#super关键字的使用方法解析

package basic.FileElse;

/**
 *      super关键字介绍
 *          super不能使用在static静态方法中
 *          super()只能出现在构造方法第一行,通过当前构造方法调用父类构造方法
 *      super关键字使用方法
 *          a、在子类的成员方法中,访问父类的成员变量
 *          b、在子类的成员方法中,访问父类的成员方法
 *          c、在子类的构造方法中,访问父类的构造方法
 */

public class Zi extends Fu{
    int num=10;

    public void setNum(){
        System.out.println(num);//本类中的num
        System.out.println(super.num);//父类中的num
    }

    public void moth(){
        super.moth();     //访问父类中的moth()方法
        System.out.println("子类方法!!");
    }

    public Zi(){
        /**构造方法第一行没有this()也没有super(),系统默认有一个super();
         * 自己看不见
         */

    }

}

package basic.FileElse;

public class Fu {
    int num=111;

    public Fu() {
        System.out.println("父类构造方法1启用");
    }

    public Fu(int num) {
        this.num = num;
        System.out.println("父类构造方法2启用");
    }

    public void moth(){
         System.out.println("父类方法!");
     }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值