**构造器**

构造方法的定义:

【修饰符】 方法名([参数列表]){

//方法体

}

上述语法格式定义需要满足三个条件:

  • 方法名与类名相同

  • 方法名的前面没有返回类型

  • 不能使用return返回一个值,可以使用return语句来作为结束

 
//构造器
public class B3 {
    //类的构造
    public B3(){
        System.out.println("调用了无参构造方法");
    }
}
public class B4 {
    public static void main(String[] args) {
        B3 b3 = new B3();
    }
}
调用了无参构造方法

在实例化对象的时候自动调用了B3中的构造器

在一个类中除了可以定义无参构造,还可以定义有参构造。

通过有参构造就可以给属性赋值。

一旦定义了有参构造,无参构造就必须显示定义

定义有参构造后,如果想使用无参构造必须显示定义

//有参构造
public class B4 {
    //声明Int类型age
    int age;
    //定义有参构造的方法
    public B4(int a){
        age=a;
    }
    //定义speak方法
    public void speak(){
        System.out.println("我今年"+age+"岁了");
    }

    }
/*public class B5 {
    public static void main(String[] args) {
        B4 b4 = new B4(18);
        b4.speak();
    }
}

 */
 
 我今年18岁了

构造方法的重载

与普通方法一样,构造方法也可以重载,只有构造参数类型和数量不同就行,在创建对象时,可以通过调用不同的构造方法来为不同的属性赋值。、

public class B5 {
    //声明String类型的变量name
    String name;
    //声明int类型的变量age
    int age;
    //定义有参构造
    public B5(int a){
    age = a;
    }
    public B5(String n,int a){
        name = n;
        age = a;
    }
    public void speak(){
        System.out.println("我今年"+age+"岁了");
    }
    public void say(){
        System.out.println("我叫"+name+"我今年"+age+"岁了");
    }

}
/*
public class B6 {
    public static void main(String[] args) {
        B5 b5 = new B5(4);
        B5 b6 = new B5("zml", 4);

        b6.say();
        b5.speak();
    }
}

 */

2021-03-11 23:18:44

posted @ 2021-03-11 23:19  域明夜  阅读(73)  评论(0)    收藏  举报