2014-09-10 192 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