Java中的构造器是用于初始化新创建对象的特殊方法,它们的名字必须与类名完全相同,且没有返回类型,包括void。构造器的主要作用是设置对象的初始状态,通常用来赋值给实例变量。在创建对象时,构造器会被自动调用。 在上述例子中,`Human` 类有一个构造器,它接受一个整数参数 `h`,并将其赋值给 `height` 实例变量。当通过 `new Human(160)` 创建 `Human` 对象时,构造器内部的代码被执行,将 `height` 初始化为传入的参数值160,并输出"I'm born",表明对象创建过程已完成。 如果类中没有定义构造器,Java 编译器会自动提供一个默认的无参构造器。但一旦程序员定义了自己的构造器,这个默认构造器就不会再提供。所以在定义了带参数的构造器后,如需创建不带参数的对象,需要额外提供一个无参构造器。 关于初始化的优先级,当对象的实例变量既在构造器中初始化,又在类声明中显式初始化时,构造器的初始化会覆盖显式的初始值。这是因为构造器在对象创建时首先执行,然后才是类声明中的初始化。所以,即使 `Human` 类中的 `height` 在声明时被赋值为170,通过构造器传入的160参数仍会成为最终的初始值。 方法重载(Overloading)是Java允许在同一个类中定义多个同名方法,但这些方法的参数列表必须不同(参数数量、类型或顺序不同)。这样可以根据传入的参数不同来选择执行对应的方法。在上述例子中,如果 `Human` 类还有另一个构造器,例如接受两个参数,那么这就是方法重载的一个示例: ```java public Human(int h, String name) { this.height = h; this.name = name; } ``` 在这个新的构造器中,除了初始化 `height` 外,还初始化了一个名为 `name` 的字符串变量。这样,我们就可以创建具有不同初始值的对象,如 `new Human(150, "NeZha")`。 构造器在Java编程中扮演着关键角色,它们允许我们在创建对象时进行定制化初始化,而方法重载则增强了代码的灵活性和可读性。理解这两者是掌握面向对象编程的基础,也是编写高效、易于维护的Java代码的关键。
- 粉丝: 5
- 资源: 935
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助