繁体   English   中英

构造函数(java)

[英]constructors (java)

好的,所以我要完成一个作业,在该作业中,我必须创建一个具有一组私有属性的类。 之所以变得棘手,是因为我对Java编程(或一般编程)还很陌生,并且在封装方面不怎么实践。 我以前没有使用getter / setter或构造函数。 我了解getter / setter方法,但还没有在线了解构造函数的任何信息,甚至不了解它们的用途。

我必须为每个属性创建getter / setter和构造函数,因此看来我应该学习使用这些方法。 如果有人可以给我一个带有构造函数的类的示例,并解释该构造函数在做什么,以及为什么要使用它,那将是很好的。

提前谢谢你。

首先,欢迎来到编程世界:)

让我们看一个简单的例子。

假设您要编程一个代表Square的类。 创建Square对象时,必须为Square提供某些属性,例如每边的长度。 这是构造函数起作用的地方。

类的布局如下所示,请注意,未为length_of_each_side变量分配值。

public class Square {
     int length_of_each_side;

     public Square() {
     ...
     }

     public Square(int length) {
     ...
     }
}

您可以具有默认的构造函数,如果您不指定正方形的大小,它将为您提供预定义的正方形。

public Square() {
     length_of_each_side = 1;
}

或者您可以允许某人指定正方形的大小

public Square(int length) {
     length_of_each_side = length;
}

如果我想创建一个预定义的Square(长度为1),它看起来像这样

Square mySquare = new Square();

如果我想创建一个Square并指定55的长度,它将看起来像这样

Square mySquare = new Square(55);

我不确定您在学校如何看待这件事,或者您的老师在告诉您什么,但这只是一个建议-请勿习惯使用吸气剂和吸气剂。 它们在Java中不是“自动的”是有原因的,因为它们确实不应该在那里。

当您有一个对象时,其想法是让该对象为您做些事情-换句话说,您应该提供对您的变量起作用的方法,而不是获取该变量并对其执行然后放回去。

很多时候您无法避免使用吸气剂-但是仅在确定需要使用吸气剂时才添加它们,而不是出于习惯问题。

您的构造函数是设置所有成员变量的最佳位置。 实际上,如果将变量定为final(一个很好的习惯,使类成为“不变”),则构造函数将是唯一可以分配变量的地方。

确保在创建对象时调用构造函数,因此是设置对象的好地方。 在构造函数中,如果确保对象处于有效状态并且具有最终成员变量,则不可能使对象进入无效状态-这是一种非常方便的做法,可以节省大量调试时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM