zoukankan      html  css  js  c++  java
  • Java中的this与super关键字

    this关键字:

    构造方法之间的调用,可以通过this关键字来完成。只能在本类中构造方法里用,也只能调用构造方法。不能用在普通方法。

    this(参数列表);

    调用其他构造方法的语句必须定义在构造方法的第一行,原因是初始化动作要最先执行。

    可以在成员变量名前面加上this.来区别成员变量和局部变量。

    public class Person {
        private String name;
        private int age;
        //调用本类成员:this.成员(属性/方法)
        //构造方法之间的调用:this(参数列表)
        //注意事项:构造方法中的this()必须放在第一行,否则报错
        public Person(){
            this("小红",18);
            
        }
        public Person(String name,int age){
            this.name=name;
            this.age=age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
    }
    public class Demo01 {
    
        public static void main(String[] args) {
        Person p=new Person();
        System.out.println(p.getName());
    
        }
    
    }

    super关键字:

    1、在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句。

    2、当子类调用父类的构造方法时,用super();

    3、this调用了本类其他构造方法,那么super调用父类的语句没有的,因为初始化动作要先执行。主要在构造方法中直接或者间接的调用super()就可以完成初始化。(在开始的位置写本类的,在后面的方法中的调父类的)。

    4、Java体系在设计,定义了一个所有对象的父类Object。

    解决this和super谁在第一行的问题  间接的方式分开

    public class Zi extends Fu{
        //在子类中用super.成员(方法/属性)调用父类成员
        //在子类构造方法中用super(实参)调用父类构造方法
        //注意事项:显示指定super()必须放在构造方法第一行
    public Zi(){
        //每个类中的构造方法默认第一行都有
        //super();
        //调用父类构造方法
        //super("小红帽");
    }
    public Zi(String name){
        super("小红帽");
        //super();
    }
    }
  • 相关阅读:
    Charles初体验
    基于工作量证明的哈希算法实验
    入侵检测软件Snort的使用实验
    基于netwox/netwag 工具的网络协议攻防实验
    jsonp原理
    案例:使用jquery的ajax load方法更新局部页面并应用NProgress库实现顶部进度条
    使用node文件模块封装一个学生数据操作API
    ES6 promise初体验
    nodejs中的路径和url操作
    使用nodejs和art-template模板引擎实现apache的部分功能
  • 原文地址:https://www.cnblogs.com/heitaitou/p/12814987.html
Copyright © 2011-2022 走看看