Java中对象的初始化与函数重载1

无论是Java和C#都要求对象在建立时,其Field成员能够被初始化,于是一个对象在建立的时候需要调用其构造器(初始化方法)。

构造器的格式,example:

class Bread

{

  String taste;

  Bread()  //构造器

  {

    //Initialization

  }

}

构造器的标准格式要求构造方法必须与类名一致,不能有返回值类型标识(void也不行)。

当生成一个新对象时:首先为对象分配存储空间,然后调用构造器来对域成员进行初始化。

new Bread(),即生成一个新对象时,其构造器是被自动的调用的。当类中未显示的给出构造器时,编译器会调用默认的构造器完成域的初始化操作。

默认构造器初始化原则:对基本类型(int,long,float),其二进制位全部置0。对对象变量(即引用),置为null(同样也是将二进制位置0)。

注意:一旦用户定义了构造器后,系统的默认构造器即失效,必须按照定义的构造器给出初始化参数列表。

即:

class Bread

{

String taste;

}  此时,类文件中未定义构造器,将采用默认构造器,  new Bread()可编译通过,taste被置为null;

若改为:

class Bread

{

String taste;

Bread(String str)

{

  taste=str;

}

}

new Bread()将无法编译通过(无与其匹配的构造器,默认构造器失效), 必须改为  new Bread("sweat"),以满足定义的构造器的参数列表要求。

 

构造器的标准格式要求构造方法必须与类名一致?

1、任何名字都可能与类成员的名字相冲突;

2、编译器需要能够知道每个类得构造器方法,以进行调用。

 

在OOP中,构造器必须与类名一致,以保证编译器能正确的调用各个类的构造器。

构造器是在建立对象时自动调用的,其调用在对象建立好之前,构造器实质是一个public static方法,不属于具体对象,而是类。

但是JAVA中为求标记的的便利,隐去了对static关键字的要求。

 

有些时候,同一个类可能不止具有一个构造器,于是产生了对函数重载的需求。(OOP设计之初)

*因为构造器名必须与类名一致,那么具有多种初始化方式的类,该如何定义其构造器方法?函数重载!

 

你可能感兴趣的:(java)