Java的构造函数

构造函数是一个特殊的成员方法,其将由JVM隐式(自动)调用,用于放置用户/程序员定义的值而不是放置默认值。
构造函数旨在初始化对象。

构造函数的优点:

-构造函数不需要放置默认值。
-构造函数消除了隐式调用普通方法。

规则2:

每当我们使用参数化构造函数创建一个对象时,java程序员必须要定义参数化构造函数,否则我们将获得编译时间错误。

重载(overloading)构造函数是构造函数名称相似的构造函数,但其签名是不同的。
签名代表参数的数量,参数类型和参数顺序。
其中至少有一件事必须差异化。

为了

Test t1=new Test (10, 20);
Test t2=new Test (10, 20, 30);
Test t3=new Test (10.5, 20.5);
Test t4=new Test (10, 20.5);
Test t5=new Test (10.5, 20);

规则3:

每当我们定义/创建关于参数化构造函数和默认构造函数的对象时,java程序员必须定义构造函数。

说明:

当我们定义一个类时,该类可以包含两个类别的构造函数,它们是单个默认构造函数和"n"的参数化构造函数(重载(overloading)构造函数)。

默认情况下,参数传递机制是通过引用的调用。

规则1

每当我们仅使用默认构造函数创建对象时,定义默认构造函数都是可选的。
如果我们未定义类的默认构造函数,则JVM将自动调用系统定义的默认构造函数(SDDC)。
如果我们定义,JVM将调用用户/程序员定义的默认构造函数(UDDC)。

参数化构造函数是占用一些参数的构造函数。

例如:

class Test
{
    int a, b;
    Test (int n1, int n2)
    {
        System.out.println ("I AM FROM PARAMETER CONSTRUCTOR...");
        a=n1;
        b=n2;
        System.out.println ("VALUE OF a = "+a);
        System.out.println ("VALUE OF b = "+b);
    }
};
class Test2
{
    public static void main (String k [])
    {
        Test t1=new Test (10, 20);
    }
};

构造函数的类型:

基于在Java中创建对象我们有两种类型的构造函数。
它们是默认/参数少于/没有参数构造函数和参数化构造函数。

默认构造函数是一个不接受任何参数的构造函数。

语法:

Class <clsname>
{
    clsname () //default constructor
    {
        Block of statements;
        ...................;
        ...................;
    }
    ..............;
    ..............;
};

例如:

class Test
{
    int a, b; Test ()
    {
        System.out.println ("I AM FROM DEFAULT CONSTRUCTOR..."); 
        a=10;
        b=20;
        System.out.println ("VALUE OF a = "+a); 
        System.out.println ("VALUE OF b = "+b);
    }
};
class TestDemo
{
    public static void main (String [] args)
    {
        Test t1=new Test ();
    }
};

构造函数的规则/属性/特征:

  • 构造函数名称必须与类的名称类似。
  • 构造函数不应返回任何值,甚至不void(如果我们为构造函数写回返回类型,那么该构造函数将被视为普通方法)。
  • 构造函数不应该是静态的,因为每次对象都在创建时都会调用构造函数。
  • 构造函数不应私有,只要在另一个类中创建一个类的对象(构造函数可以是私有的,提供了在同一类中创建的一个类的对象)。
  • 构造函数根本不会继承。
  • 每当对象创建时,构造函数都会自动调用。
日期:2020-04-11 23:04:26 来源:oir作者:oir