面向对象----构造方法/构造器(constructor)

定义:构造器也叫构造方法,用于对象的初始化构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

构造器的作用:
(1)创建对象:通过new关键字来使用构造器,创建对象
换句话说:new 后面的就是构造器

(2)在创建对象的同时,可以给成员变量初始化。

如何声明构造器:
【修饰符】 class 类名{
    //无参构造
    【权限修饰符】 类名(){
    }
    //有参构造
    【权限修饰符】 类名(形参列表){
    }
}

构造器长得很像方法,所以很多人又把构造器称为构造方法。

              

构造器特点:
(1)构造器的名字必须和类名完全一致,包括大小写形式
(2)构造器没有返回值类型,也不写void,如果写了返回值类型就不是构造器了,就变成成员方法了。
(3)构造器的修饰符,只能是权限修饰符:public,protected,default,private
(4)如果一个类没有加/写任何构造器,那么编译器会自动添加一个无参构造,
并且这个默认无参构造的权限修饰符默认和类的权限修饰符一样。
(5)如果我们声明了/写了构造器,那么编译器就不会自动产生默认的无参构造了。
如果此时需要无参构造,就只能手动写了。

在继承时,构造器是不会被继承到子类的,但是子类一定会调用父类的构造器。
默认情况下,调用父类的无参构造,相当于子类构造器的首行有一句:super();
如果不想要调用父类的无参构造,想要调用父类的有参构造,或者父类只有有参构造,那么需要在子类的构造器首行写一句:super(实参列表);

问?为什么子类一定要调用父类的构造器呢?
        这里调用父类的构造器不是为了创建父类的对象,而是为了给从父类继承的实例变量进行初始化。
        因为子类会继承父类的成员变量,那么从父类继承的成员变量的初始化,需要通过父类的构造器进行。

public class SxtStu {

    int id;
    String sname;
    int age;


    SxtStu(){      //无参构造器,如果我们没有手动定义构造器,系统会自动添加
    }

public class Student {
    private String name;

    public Student(){
        System.out.println("无参构造");
    }
    public Student(String name){
        this.name = name;
        System.out.println("有参构造");
    }

    public String getInfo(){
        return "姓名:" + name;
    }
}

构造方法重载(创建不同用户对象)

public class User {
    int id;
    String name;  //账户名
    String pwd;   //密码
    public User(){

    }

    public User(int id,String name){
        this.id =id;
        this.name = name;

    }

    public User(int id,String name,String pwd){
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public static void main(String[] args) {
        User u1 = new User();
        User u2 = new User(101,"李龙");
        User u3 = new User(100,"李龙","123456");
    }
}

如果方法构造中形参名与属性名相同时,需要用this关键字区分属性与形参。

例如:this.id表示属性id;id表示形参id

快捷键:Alt + insert

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值