我对Java很陌生,我正在处理一个家庭作业问题。该问题指定使用一个构造函数创建一个温度类,该构造函数接受华氏温度(作为双)并将其存储在ftemp字段中。setFahrenheit方法接受华氏温度(双倍),并将其存储在ftemp字段中。
这对我来说是多余的。setFahrenheit方法不就是构造器所做的吗?
发布于 2015-09-05 19:08:05
不是的。如果温度变化了怎么办?你不能创建一个新的温度类,因为这意味着你要创建一个全新的对象。setFarenheit()允许您更改特定类中的温度。
这里还有另一个更好的例子:假设您有一个名为Person的类,并且在构造函数中传递了这个人的年龄。类中应该有一个setAge()方法,因为这个人最终会变老,如果只为了改变他/她的年龄而创建他/她的副本,效率会很低。
发布于 2015-09-05 19:12:37
1)假设您也有一个空构造函数,并且正在创建一个Temperature对象temp,作为
temp=new Temparature();对于temp,ftemp字段仍然是空的。因此,如果您想设置ftemp,您将使用setFahrenheit方法
temp.setFahrenheit(12);2)同样,如果要在构造函数中使用Temparature创建ftemp对象,
temp=new Temparature(22); 接下来,如果要更改这个临时对象的ftemp,您将做什么?您将再次使用具有新ftemp值的ftemp方法,对吗?
希望这能消除你的疑虑。
发布于 2015-09-05 19:07:31
引用以下网址给出的答案:Methods vs Constructors in Java
构造函数和方法之间的重要区别在于,构造函数创建和初始化尚未存在的对象,而方法则对已经存在的对象执行操作。构造函数不能直接调用;当新关键字创建对象时,它们被隐式调用。方法可以直接调用已用new创建的对象。构造函数和方法的定义在代码中看起来类似。它们可以接受参数,也可以有修饰符(例如public),并且在大括号中有方法体。构造函数的命名必须与类名相同。它们不能返回任何东西,甚至是空(对象本身就是隐式返回)。方法必须声明才能返回某些内容,尽管它可能是无效的。
勒格特曼
https://stackoverflow.com/questions/32416700
复制相似问题