我正在學習Java OOP閱讀一本書,並沒有很好地解釋子類的主題。我正在嘗試創建一個解決方程組的類,您可以找到代碼here。Java子類沒有足夠的參數
sistemi
類解決了2個方程組的系統,sistemi3eq
的子類解決了3個方程組的系統。 NetBeans被給我這個錯誤:
我還沒有發現大量的文檔資料。你有什麼建議嗎?我怎樣才能改進我的代碼?
我正在學習Java OOP閱讀一本書,並沒有很好地解釋子類的主題。我正在嘗試創建一個解決方程組的類,您可以找到代碼here。Java子類沒有足夠的參數
sistemi
類解決了2個方程組的系統,sistemi3eq
的子類解決了3個方程組的系統。 NetBeans被給我這個錯誤:
我還沒有發現大量的文檔資料。你有什麼建議嗎?我怎樣才能改進我的代碼?
你的班級名稱不(也不能)有()
那麼你爲什麼extends sistemi()
?
只是extends sistemi
我仍然有錯誤 –
確實。但是,因此這個問題應該被認爲是「簡單的印刷錯誤」;) –
發佈錯誤。 - @OliCharlesworth肯定 –
子類其實不是你的父類中。你需要在你的父類的範圍內移動它。一個文件中不能有兩個單獨的pubilc類。
既然第二個是不公開的,你仍然可以這樣使用它,但你真的不應該這樣做。您應該將其放在sistemi
課程或其他文件中。
public class sistemi {
...
//this bracket here needs to go at the bottom of the file
//}
class sistemi3eq extends sistemi {
...
}
}
我已經在sistemi(double a, double b, double c, double d, double e, double f)
分配了void,現在它可以工作。
public class sistemi {
private Double x;
private Double y;
public void sistemi(double a, double b, double c, double d, double e, double f) {
//calcolo nella matrice
double detx = (c*e)-(b*f);
double dety = (a*f)-(c*d);
double det = (a*e)-(d*b);
//calcolo dei risultati x e y del sistema
if (det != 0) {
x = detx/det;
y = dety/det;
}
}
//funzioni varie
other code
}
class sistemi3eq extends sistemi {
private Double x;
private Double y;
private Double z;
//other code
}
現在它不再是一個構造函數(我從來沒有想過你可以創建一個同名類的方法)。也許你希望它是靜態的 –
不需要'()'。 –
另請注意,Java中的類型(即類名)應以大寫字母開頭,即「Sistemi」。 –
無論如何,我認爲你應該重新考慮你的設計.. –