java中的构造器

来源:互联网 发布:白光触摸屏 编程软件 编辑:程序博客网 时间:2024/05/21 10:20

引言:初始化和清理是涉及安全的两个问题.

构造器

用构造器确保初始化.

  java引入了C++中构造器的概念,这是一个在创建对象时被自动调用的特殊方法。

为什么要用构造器?

  可以假想为编写的每个类定义一个初始化()方法,该方法的名称是提醒在使用对象之前,就首先调用初始化()。然而,这同时意味这用户必须记得自己去调用此方法。通过引入构造器,类的设计者可确保每个对象都会得到初始化。

构造器的命名问题.

  构造器的名称可能与类的某个成员相冲突;调用构造器是编译器的责任,因此必须要让编译器知道要调用哪个方法。结合以上两种原因java采取了这种方法:构造器名与类名相同的名称。在创建对象时就会自动调用构造器进行初始化。

构造器使用注意事项:

  构造器分为无参构造器(默认构造器)

    Tree t = new Tree(); 

    如果你的类中没有构造器,编译器会自动帮你创建一个默认构造器。如果有了编译器就不会帮你创建。  

  有参构造器 

    Tree t = new Tree(int);

  - java默认为无参构造器,对象的创建遵循构造器,例:当Tree(int)是Tree中唯一的构造器时,那么编译器不允许你以其他方式创建Tree对象。

  - 构造器是没有返回值的,这与void明显不同,对于空返回,尽管方法本身不会返回什么,但及可以选择让它返回别的东西。

方法重载.

为什么要有方法重载?

  - 提高利用效率,减少冗余。

  - 构造器是强制重载方法名的另外一个原因。构造器的名字已经由类决定,就只能有一个构造器名。那么要想用多种方法创建对象怎么办?由于都是构造器,它们必须有相同的名字,即类名。为让方法相而形式参数不同的构造器同时存在,必须要用到方法重载。重载亦可用于其它方法。

区分方法重载.

  通过参数列表区分方法,即使是顺序不同也足以区分。

涉及基本类型的重载.

  基本类型能从一个”较小“的类型自动提升至一个”较大“的类型,此过程涉及到重载时可能造成一些混淆。

  - 如果传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升。

  - 如果传入的数据类型较大,就得通过类型窄化转换,否则编译器会报错。

1 0
原创粉丝点击