Java构造函数

Posted Claricre

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java构造函数相关的知识,希望对你有一定的参考价值。

构造函数的定义:

  构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

构造函数的注意事项:

  1.一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。 

  2.如果在类中定义了指定的构造函数那么类中的默认构造函数就没有了。

  3.构造函数可以有多个,用于对不同的对象进行针对性的初始化。 

  4.多个构造函数在类中是以重载的形式来体现的。

  5.构造函数必须与类名相同。

  6.不能有返回类型,即只能赋值,不能return。

  7.自动被执行。对象new出的来时间自动被执行。

  8.一般都是public。

什么时候需要构造函数:

  在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造函数中。

构造函数与一般函数的区别:

  构造函数:对象创建时,就会调用与之对应的构造函数,对对象经行初始化。 
  一般函数:对象创建后,默认未被调用,需要函数功能时才调用。

  构造函数:对象 创建时,会调用只调用一次。 
  一般函数:对象创建后,可以被调用多次。

一般函数不能直接调用构造函数。 
构造函数前面如果加了void就变成了一般函数。 

例子:

public class Test {
    private String Book;
    private int Hao;
    
    public Test(){
        Book="书1";
        Hao =1;
        System.out.println("测试");
    } 
    public Test(String b){
        Book = b;
    }
    public void setBook(String b){
        Book =b ;
    }
    
    public Test(String b,int h){
        Book = b ;
        Hao = h;
    }
    public void aaa(){
        System.out.println(Book+","+Hao);
    }
    
    public static void main(String[] args){
        Test t= new Test();
        t.aaa();
        
        Test t1 = new Test("这是第一本书");
        t1.setBook("这是第二本书");
        t1.aaa();
        
        Test t2 = new Test("这是第三本书",3);
        t2.aaa();
    }
}

输出结果为:

 

以上是关于Java构造函数的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

使用java.lang.Exception的错误:测试类应该只有一个公共构造函数

防止 Proguard 删除片段的空构造函数

无法解析片段中的 ViewModelProvider 构造?

为啥要避免片段中的非默认构造函数?