Java05-4 this和super、构造方法

一、this和super
1.this:代表本类的一个对象,谁调用该方法,this就是谁       (eg:实参m—形参m—成员变量this.m)
例如 Student s = new Student();
        s.setId(3);   此时this就是s

       Student s1 = new Student();
       s1.setId(3);  此时this就是s1

2.super:代表了当前对象的父类对象
@Override
public String toString() {
    //super:代表了当前对象的父类对象
    return super.toString();
}    


二、构造方法
构造方法:
1.配合new创建实例(对象)       (创建对象时,一次只能用一种构造方法)
2.对实例进行初始化操作(为成员变量赋初始值)   (后面值可以改)
形式:(返回值固定,不用定义返回值类型,返回所在的类名,也为了和其它方法区分)
 [访问控制符] 类名([参数列表]){      

 }

特点:
1.类中未定义构造方法时,会有一个默认的无参数的构造方法  
2.类中定义了构造方法,不会再提供默认的无参数的构造方法
3.构造方法的方法名必须和所在的类的类名保持一致,所以构造方法不能被重写,但是可以被重载(一个类中可以有多个构造方法)
4.在一个构造方法中,通过this的方式调用其它构造方法,必须写在第一行     (当前构造方法中不能通过this自己调自己)
5.通过this的方式调用构造方法,只能是在构造方法中 (非构造方法中调用构造方法,通过  new 构造方法名()   的方式调用) 
6.在子类的构造方法中,我们没有调用父类构造方法时,默认会在第一行调用父类中无参数的构造方法
7.在子类的构造方法中,默认只会去调用父类中无参数的构造方法,
       如果父类中没有无参数的构造方法,就需要我们自己手动在第一行调用父类中的某个构造方法
8.构造方法可以被任何访问控制符修饰

(所有的机制保证 先有父,后有子)

this.方法名([参数列表]):调用成员方法
this([实参列表]):调用本类中其它的构造方法
super([实参列表]):调用了父类中的某个构造方法

class SuperClass{
    public SuperClass() {
        System.out.println("父类无参数的构造方法");
    }    
    public SuperClass(int a) {
        System.out.println("父类有参数的构造方法");
    }
}

class SubClass extends SuperClass{    
    public SubClass() {    
        //super();   (SuperClass未定义构造方法,第一行默认调用父类中的无参构造方法)
        super(1);  //(SuperClass定义了构造方法,第一行调用父类中的有参构造方法)
        System.out.println("子类无参数的构造方法");
    }    
    public SubClass(int x) {
        super(10);    //(此时SuperClass父类中无无参的构造方法,手动调用有参构造方法)
        //this();        //(调用super(10);后,不能再调用自己的构造方法,由于二者都只能在第一行)
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值