首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -构造器和方法冗余

Java -构造器和方法冗余
EN

Stack Overflow用户
提问于 2015-09-05 19:03:46
回答 7查看 528关注 0票数 0

我对Java很陌生,我正在处理一个家庭作业问题。该问题指定使用一个构造函数创建一个温度类,该构造函数接受华氏温度(作为双)并将其存储在ftemp字段中。setFahrenheit方法接受华氏温度(双倍),并将其存储在ftemp字段中。

这对我来说是多余的。setFahrenheit方法不就是构造器所做的吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-09-05 19:08:05

不是的。如果温度变化了怎么办?你不能创建一个新的温度类,因为这意味着你要创建一个全新的对象。setFarenheit()允许您更改特定类中的温度。

这里还有另一个更好的例子:假设您有一个名为Person的类,并且在构造函数中传递了这个人的年龄。类中应该有一个setAge()方法,因为这个人最终会变老,如果只为了改变他/她的年龄而创建他/她的副本,效率会很低。

票数 1
EN

Stack Overflow用户

发布于 2015-09-05 19:12:37

1)假设您也有一个空构造函数,并且正在创建一个Temperature对象temp,作为

代码语言:javascript
复制
temp=new Temparature();

对于temp,ftemp字段仍然是空的。因此,如果您想设置ftemp,您将使用setFahrenheit方法

代码语言:javascript
复制
temp.setFahrenheit(12);

2)同样,如果要在构造函数中使用Temparature创建ftemp对象,

代码语言:javascript
复制
temp=new Temparature(22); 

接下来,如果要更改这个临时对象的ftemp,您将做什么?您将再次使用具有新ftemp值的ftemp方法,对吗?

希望这能消除你的疑虑。

票数 1
EN

Stack Overflow用户

发布于 2015-09-05 19:07:31

引用以下网址给出的答案:Methods vs Constructors in Java

构造函数和方法之间的重要区别在于,构造函数创建和初始化尚未存在的对象,而方法则对已经存在的对象执行操作。构造函数不能直接调用;当新关键字创建对象时,它们被隐式调用。方法可以直接调用已用new创建的对象。构造函数和方法的定义在代码中看起来类似。它们可以接受参数,也可以有修饰符(例如public),并且在大括号中有方法体。构造函数的命名必须与类名相同。它们不能返回任何东西,甚至是空(对象本身就是隐式返回)。方法必须声明才能返回某些内容,尽管它可能是无效的。

勒格特曼

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32416700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档