***我試過搜索,但我不明白會發生什麼。抱歉。(Java)在構造函數中調用方法?
我正在爲學校服務器/客戶端項目工作。我在智慧的結尾,我即將放棄。我沒有課堂筆記,所以我需要一些幫助。 首先,我會發布給我的指示,然後是我現在的代碼,然後是我的問題。
SERVER方向:
三角類必須具有以下實例變量:side_a,side_b,side_c。創建一個靜態變量來跟蹤創建的三角形對象的數量。還要創建一個靜態變量來保存創建的所有Triangle對象的周界總數。
Triangle類的三個參數構造函數應該將三重輸入值分配給對象的實例變量。如果不是有效的三角形,則將所有邊設置爲1.創建一個名爲isValid()的單獨私有方法。爲了表示一個有效的三角形,三角形的任何兩邊的總和必須大於第三邊的總和。沒有一方可能是0或負面的。構造函數還應該爲count添加1,並調用一個方法來計算,然後將該對象的周長添加到累加器。
三角類必須具有下列方法如上指出:
- 公共布爾is_right()公共布爾is_isoc()
- 公共布爾is_equil()公共布爾is_scal()
公共字符串toString() - 返回三角形三邊的值
您還應該向稱爲calc_perim的Triangle類添加一個方法。此方法將使用Triangle對象的邊來計算該對象的邊界。
- addTotalPerim。此方法將調用calc_perim並將該對象的外圍添加到累加器。
- reduceTotalPerim。該方法應該從累加器中減去該對象的周長。
服務器代碼:
public class Triangle {
private int side_a, side_b, side_c;
private static int count;
**//PROBLEM 1: Java tells me 'perim' is not used.**
private static int perim;
private boolean valid;
public Triangle(int s1, int s2, int s3)
{
side_a = s1; side_b = s2; side_c = s3;
**//PROBLEM 2: Java tells me 'v' is not used.**
boolean v = isValid();
if (v = false)
{side_a = 1; side_b = 1; side_c = 1;}
Triangle.count++;
calc_perim(s1,s2,s3);
addTotalPerim();
reduceTotalPerim();
}
private int calc_perim()
{
int perimeterCalc = side_a + side_b + side_c;
return perimeterCalc;
}
private void addTotalPerim()
{
Triangle.perim += calc_perim();
}
private void reduceTotalPerim()
{
Triangle.perim -= calc_perim();
}
private boolean isValid()
{
boolean valid1;
if (side_a < 1)
{ valid1 = false;}
else if (side_b < 1)
{ valid1 = false;}
else if (side_c < 1)
{ valid1 = false;}
else if ((side_a + side_b) < side_c || (side_a + side_b) == side_c)
{ valid1 = false;}
else
{ valid1 = true;}
return valid1;
}
public boolean is_right()
{
boolean right;
if (((side_a * side_a) + (side_b * side_b)) == (side_c * side_c))
right = true;
else
right = false;
return right;
}
public boolean is_isoc()
{
boolean isoc;
if (side_a == side_b)
isoc = true;
else if (side_a == side_c)
isoc = true;
else if (side_b == side_c)
isoc = true;
else
isoc = false;
return isoc;
}
public boolean is_equil()
{
boolean equil;
if (side_a == side_b && side_a == side_c)
equil = true;
else
equil = false;
return equil;
}
public boolean is_scal()
{
boolean scal;
if (side_a == side_b || side_a == side_c || side_b == side_c)
scal = false;
else
scal = true;
return scal;
}
public String toString()
{
return "Side 1: " + side_a + " Side 2: " + side_b + " Side 3: " + side_c;
}
}
對不起格式化,但是這個網站有格式化代碼,除非我誤解的東西...
服務器問題的一個可怕的方式:
什麼是正確的方法加/減e通過方法calc_perim獲得的周界變量perim?方向說在構造函數中調用calc_perim方法,但我不知道如何,所以我只是讓它自己進行計算。
在構造函數中,在調用方法isValid()之後,爲什麼我通過Java告訴變量'v'未被使用?我是否錯誤地調用了isValid()? >>>>>如何在構造函數中調用方法?< < < < <
除此之外重大問題,服務器類工作正常。
4.我試圖在構造函數中調用這兩個函數,我只是猜測,因爲我不確定是否正確調用了它們。感謝3和5的幫助,儘管我會盡快回復我的項目。 – magnum482 2014-11-01 19:19:18
@ magnum482,好的,你也可以接受答案 – 2014-11-01 19:20:33
是的,如果一切正常,我會接受你的,因爲你也幫助過其他方法。 – magnum482 2014-11-01 19:26:48