2014-09-10 190 views
-1

我是Java新手,所以我确信这是一个简单的问题(我的头脑正在整天研究)。下面是我学习的代码,不记得/搞清楚这行代码是这样做的:使用构造函数声明(构造函数?)

public Temperature(String type, double degrees) { 
if (type.equalsIgnoreCase("C")) 

这被认为是一个构造?什么是“字符串类型,双度”这两个参数在做什么? TIA。

下面的代码从上往下:

public class Temperature { 
private double degreesFahrenheit; // Fahrenheit temperature 
private double degreesCelsius; // Celsius temperature 
private double degreesKelvin; // Kelvin temperature 

/** * This constructor for Temperature sets the temperature 
* values to the value from degrees, based on the type * 
* @param type temperature scale to use 
* @param degrees degrees Fahrenheit 
*/ 

public Temperature(String type, double degrees) { 
if (type.equalsIgnoreCase("C")) 
setDegreesCelsius(degrees); 
else if (type.equalsIgnoreCase("F")) setDegreesFahrenheit(degrees); 
else if (type.equalsIgnoreCase("K")) setDegreesKelvin(degrees); 

...

回答

0

是的!这个:

public Temperature(String type, double degrees){ 
    ... 
} 

是一个构造函数。

基本上它时调用是创建一个新的温度对象,并通过设置在类中的一些字段:

1)检查是否arguement typeCcFfKk

2)适当地调用方法:
setDegreesCelsius(degrees);setDegreesFahrenheit(degrees);setDegreesKelvin(degrees);各自。

您还没有张贴这些方法,但其最有可能的是,代码:

如果输入的是C分配degreesCelsius;degree arguement构造函数的值。

同样,如果FdegreesFahrenheit;,如果K对这些方法的degreesKelvin;

的定义可能是这样的:

setDegreesCelsius(double degrees){ 
    this.degreesCelsius = degrees; 
} 

希望这有助于。您的评论后

更新:

public Temperature(String type, double degrees),构造函数只接受2个arguements。一个String和一个double。在那里可以创建一个Temperature实例,并设置一些fiels的值。

例如这样的代码:

Temperate x = new Temperature("C", 35);意味着xTemperature对象和计数在Celcious规模,并且当前温度是35。

希望这更有意义

+0

有益的,但仍在挣扎。什么/为什么在那里做“字符串类型,双度”?我之前没有碰到过(我不认为)。 – bluewater 2014-09-10 22:13:58

+0

是的,更有意义。非常感谢你。 – bluewater 2014-09-10 22:53:52