我是初学者,所以我的代码相当粗糙。我做了一个Squares的对象类。在我的主程序中,我创建了一个Squares数组,每个都有一个不同长度的正方形。我也可以制作数组并打印出每个元素。
我正在尝试制作一个方法,将数组中方块的所有区域组合在一起,然后返回一个舍入为总面积的圆边长度。
方法的部分代码:
public int totalArea(Square[] s)
{
int arraylength=s.length;
int area_total=0;
int area_ind=0;
double side_new=0;
int side_real=0;
for (int i = 0; i < arraylength; i++)
{
area_ind=s[i].area();
area_total+=area_ind;
}
side_new= Math.sqrt(area_total);
side_real= (int)(side_new);
return side_real;
}
这是实际“主”文件的代码:
public class as5_apprun
{
public static void main(String[] args)
{
Square[] original=
{
new Square(),
new Square(1,new Point (0,0)),
new Square(2,new Point (0,0)),
new Square(3,new Point (0,0)),
new Square(4,new Point (0,0)),
new Square(5,new Point (0,0))
};
这是错误:
int total= totalArea(original);
This fails giving the error
int total= totalArea(original);
^
symbol: method totalArea(Square[])
location: class as5_apprun
1 error
更新: 问题已在评论中解决
答案 0 :(得分:1)
您有totalArea
作为Square
的实例方法,但它只对一组正方形进行操作。
您应该声明public static int totalArea(Square[] s)
并将其引用为int total= Square.totalArea(original);
假设totalArea位于Square.java
内。
答案 1 :(得分:1)
由于您的totalArea
方法是一个实例方法,因此您需要有一个Square
类的实例来调用该方法。
其他方面,将totalArea
方法声明为静态,以便您可以在没有任何Square
实例的情况下调用该方法
total= Square.totalArea(original);
你能解释一下Static的不同之处吗?再次感谢。
静态方法属于类,而不属于任何实例,因此,您可以在没有任何实例的情况下调用这些方法。