【发布时间】:2014-06-19 05:51:27
【问题描述】:
我有一个问题一直阻碍我进一步前进,我认为这个错误根本不合逻辑,我正在从一本书中学习,代码来自那里。 这是代码:
package test_area;
public class clzzz {
class SimpleCircle{
double radius;
SimpleCircle()
{
radius = 1;
}
SimpleCircle(double newRadius)
{
radius = newRadius;
}
double getArea()
{
return radius*radius*Math.PI;
}
double getPerimeter()
{
return 2*radius*Math.PI;
}
void setRadius(double newRadius)
{
radius = newRadius;
}
}
public static void main(String[] args)
{
SimpleCircle circle1 = new SimpleCircle();
}
}
这是错误
如果我从 void main 中消除静态,错误就会消失,但是这样做我正在改变 main 方法的签名.....我真的很困惑,逐字遵循书中的代码。
为什么我需要静态标签?我不需要强制相应的类只有一个实例,因为我可以通过对象的名称来控制它的实例,因此静态只是一个障碍?
【问题讨论】:
-
你应该使用 static
class SimpleCircle{. -
你有一个内部类。这需要外部类的实例。你没有这样的实例。
-
使用内部类有时会有所帮助,但默认应该是;一个 class== 一个文件。虽然 clzzz 类似乎什么也没做
-
知道了,谢谢提醒。
标签: java oop static inner-classes