我正在学习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”。 –
无论如何,我认为你应该重新考虑你的设计.. –