3.1.4、为类提供构造器

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
为类提供构造器

类包含构造器,调用构造器能够为类创建对象。构造器声明看起来与方法声明一样 - 除了使用类名命名和没有返回值之外。例如,Bicycle 有一个构造器:

public Bicycle(int startCadence,int startGear,int startSpeed){
	gear = startGear;
	speed = startSpeed;
	cadence = startCadence;
}

为了创建一个叫做 myBike 的 Bicycle 的对象,可以使用 new 操作符来调用构造器。

Bicycle myBike = new Bicycle(30,8,0);

new Bicycle(30,8,0) 为对象在内存中申请空间并初始化它。

尽管 Bicycle 仅仅只有一个构造器,它其实也可以有另外的构造器,比如无参构造器。

public Bicycle(){
gear = 1;
cadence = 100;
speed = 0;
}

Bicycle yourBike = new Bicycle(); 调用无参构造器创建了一个叫做yourBike的Bicycle 对象。

在Bicycle类中这些构造器都应该被声明因为它们有不同的参数列表。和方法一样,Java平台区分构造器是基于参数的数目和类型。

你不必为类提供任何构造器,但这样做时一定要小心。编译器将自动为没有提供构造器的类提供无参构造器。默认构造器将会调用父类的无参构造器,在这种情况下,当编译器发现父类没有无参构造器时会报错,所以要验证它。如果你的类没有显示指明父类,它隐含一个父类是Object,它有一个无参构造器。

你也可以自己来使用父类的构造器。上面示例中的MountainBike 类就是这样做的。这个问题将在后续的课程中讨论。

你可以在构造器的声明上使用访问修饰符,这样来控制其他类是否可以访问该构造器。


注意:如果一个类不能访问 MyClass 构造器,那它就不能直接创建 MyClass 对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值