Java错误无法识别的错误
问题描述:
这是Java代码,我创建了4个班3建设者和我得到的错误:Java错误无法识别的错误
方法区域类矩形不能被应用到给定类型
对于2班的其他人也有类似的错误。在这个程序中基本上我创建了4个类,1个计算矩形的面积,1个计算Tri面积,1个计算Square面积,最后一个是访问主函数。
我已经为所有3类rect tri和square创建了3个构造函数,我无法在这个程序中发现错误。
class Rect //1st class rect
{
double l, b; //variables
Rect(double l, double b) //constructor for rect
{
this.l = l;
this.b = b;
}
double area(double l, double b) //method to cal Rect area
{
return l * b;
}
}
class Square //square class
{
double s;
Square(Double s) //constructor for class
{
this.s = s;
}
double area(double s) //method to cal area for square
{
return s * s;
}
}
class Tri // class for triangle
{
double l, b, h; //variables
Tri(double l, double b, double h) // constructor for tri
{
this.l = l;
this.h = h;
this.b = b;
}
double area(double l, double b, double h) //method to cal area for tri
{
return 0.5 * l * b * h;
}
}
class Area3 {
public static void main(String args[]) {
Rect r = new Rect(10, 10); //constructor initialization for Rect
Square s = new Square(15.0);//constructor initialization for Square
Tri t = new Tri(10.0, 20.0, 30.0);//constructor initialization for Tri
System.out.print(" " + r.area() + "" + s.area() + "" + t.area()); //print areas
}
}
答
您的区域方法声明指出area方法接受参数。有了这些声明,你不能说
Rect r = new Rect(1,4);
r.area();
只需从地区方法
答
你必须创建无参数面积法,在此溶液中除去双参数值,
class Rect // 1st class rect
{
double l, b; // variables
Rect(double l, double b) // constructor for rect
{
this.l = l;
this.b = b;
}
double area(){
return this.l * this.b;
}
double area(double l, double b) // method to cal Rect area
{
return l * b;
}
}
class Square // square class
{
double s;
Square(Double s) // constructor for class
{
this.s = s;
}
double area(){
return this.s * this.s;
}
double area(double s) // method to cal area for square
{
return s * s;
}
}
class Tri // class for triangle
{
double l, b, h; // variables
Tri(double l, double b, double h) // constructor for tri
{
this.l = l;
this.h = h;
this.b = b;
}
double area(){
return 0.5 * this.l * this.b * this.h;
}
double area(double l, double b, double h) // method to cal area for tri
{
return 0.5 * l * b * h;
}
}
class Area3 {
public static void main(String args[]) {
Rect r = new Rect(10, 10); // constructor initialization for Rect
Square s = new Square(15.0);// constructor initialization for Square
Tri t = new Tri(10.0, 20.0, 30.0);// constructor initialization for Tri
System.out.print(" " + r.area() + " and " + s.area() + " and " + t.area()); // print
// areas
}
}
希望这个帮助,BTW它在我的电脑上工作。
答
看看你的承包商,他们都收到一个论点。 和你所有的区域()都有一个参数。
但是!!在你的main中,你正在调用area()并且不给任何值。
只是从area()的函数中删除接收参数。
如果您要求人们尝试阅读,请正确缩进您的代码。 – khelwood
“我做的一切都正确” - 显然不是这样。 –
'area'方法需要一个参数('double area(double s)'),并且你没有参数地调用它('r.area()')。 – Tunaki