【发布时间】:2017-03-20 20:38:35
【问题描述】:
我已经开始学习 OOP 并且我理解了类的概念,我知道通过使用构造函数我们可以将我们的类与程序的其余部分隔离开,但我想更多地了解类和它的关系构造函数。
当我设置一个构造函数时,它正在初始化我的实例变量,但它是否复制了我的类,然后我只处理构造函数,或者它被用作我的类和我的程序的其余部分之间的中介,即它将信息传递给类?
这是我上周制作的一个程序示例。
class Pets
{
private String breed ;
private String coat ;
private String temperment ;
//constructors with 3 parameters and 3 instance variables.
public Pets ( String aBreed, String aCoat, String aTemperment )
{
breed = aBreed ;
coat = aCoat ;
temperment = aTemperment ;
}
//Setters
public void setBreed ( String aBreed ) { breed = aBreed ; }
public void setCoat ( String aCoat ) { coat = aCoat ; }
public void setTemperment ( String aTemperment ) { temperment = aTemperment ; }
//Getters
public String getBreed() { return breed ; }
public String getCoat() { return coat ; }
public String getTemperment() { return temperment ; }
//petDisplay - A method to print information about pets.
public void petDisplay()
{
System.out.println ( "This pet is a " + breed + ", it has a " + coat + " coat and is " + temperment + "." ) ;
}
【问题讨论】:
-
构造函数用于构造类的实例。当你说
new Pets时,它会调用构造函数来创建一个实例。 -
构造函数不是一个单独的实体。它是在实例化该类的对象类型时调用的类的特定方法。它不会“将我们的班级与程序的其余部分隔离开来”。
-
“它会将信息传递给类吗?” 是的,它会。您应该使用它将其参数分配给实例变量和/或超级构造函数。构造函数不应该做任何其他事情(除了基本验证)。特别是它不应该实例化其他类(使用
new运算符)或调用传入对象的方法。 -
这就是我要找的蒂莫西。我不明白为什么我的问题被标记为关闭,只是说明构造函数的目的并没有描述信息的使用方式。
标签: java oop constructor