day12构造方法

day12构造方法,第1张

day12构造方法 构造方法 1、定义:

构造方法是类中特殊的方法,通过调用构造方法来完成对象的创建,以及对象属性的初始化 *** 作。

2、作用:

​ 1、创建对象

​ 2、给实例对象赋值

​ 3、所有的构造方法在执行过程中没有给对象的属性手动赋值,系统则自动赋默认值,实际上大部分情况下我们需要在构造方法中手动的给属性赋值,这本来就是构造方法的主要的职责。

例子:

public class Test01 {
    public static void main(String[] args) {
        new FangFa();
        FangFa f1=new FangFa(20);

        System.out.println(f1.getNo());
        FangFa f2=new FangFa(10,"陈绪杰");
        System.out.println("学号:"+f2.getNo()+"姓名;"+f2.getName());

    }
}
class FangFa {
    private int no;
    private String name;
    //构造无参数的方法
    public FangFa(){
        System.out.println("无参数的构造方法");
    }
    //构造有参数的构造方法
    public FangFa(int a){
        no=a;
        System.out.println("有参数的构造方法");
    }
    public FangFa(int a,String b){
        no=a;
        name=b;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
输出:无参数的构造方法
有参数的构造方法
20
学号:10姓名;陈绪杰
3、定义格式:

​ [修饰符列表] 构造方法名(形式参数){

​ 构造方法体

}

例子:

//有参数的构造方法
public FangFa(int a){
    no=a;
    System.out.println("有参数的构造方法");
}
//构造无参数的方法
    public FangFa(){
        System.out.println("无参数的构造方法");
    }

调用:new 构造方法名(实际参数列表);

例子;

new FangFa();
FangFa f1=new FangFa(20);
FangFa f2=new FangFa(10,"陈绪杰");
4、注意:

1、构造方法名和类名一致。

2、构造方法用来创建对象,以及完成属性初始化 *** 作。

3、构造方法返回值类型不需要写,写上就报错,包括 void 也不能写。

4、 构造方法的返回值类型实际上是当前类的类型。

5、一个类中可以定义多个构造方法,这些构造方法构成方法重载。

6、带static的方法调用的时候是 类名.方法名(实际参数) 不带static的方法调用的时候是 引用.方法名(实际参数)。

public class Test02 {
    public static void main(String[] args) {
        dosum();
        //系统默认给构造的一个无参数的构造方法
        Test02 t1=new Test02();
        t1.dum();
    }
    public static void dosum(){
        System.out.println("有static修饰符的方法");
    }
    public void dum(){
        System.out.println("无static修饰符的方法");

    }
}

7、当一个类没有显示的定义任何构造方法的时候,系统默认提供无参数构造方法,当显示的定义构造方法之后,系统则不再提供无参数构造方法。

8、构造方法的作用是专门用来创建对象同时给属性赋值的,它的 语法很简单,比普通方法还要简单,因为构造方法名和类名一致,还不需要写返回值类型,使 用 new 就可以调用了。在一个类当中可以同时定义多个构造方法,它们之间构成重载关系。 这样就做到了在 java 中你想要什么就 new什么,每一次 new都会在堆内存中创建对象,并且 对象内部的实例变量被初始化了。

五、总结:

大多数方法都定义为实例方法,一般一个行为或者一个动作在发生的时候都需要对象的参与。

但是也有例外,当构造工具类的时候就不需要定义实例方法,为了就是方便调用和方便编程。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5482817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存