当我发布原版时,我不知道我吸烟的是什么锅,但我感觉很自然并想出了这个。我不是一个经验丰富的编码员,但整个帖子主要是作为一个大部分已被回答的问题。我现在知道类不能直接使用代码,核心结构更多。
class Shape {
public static void ShapeAttemptTwo()
{
class Circle extends Shape
{
public static CircleAttemptTwo()
{
int pi = 3.14;
int r=4;
}
}
class Rectangle extends Shape
{
public static Rectangle()
{
int l = 14;
int b = 10;
int z = l*b;
}
}
class Square extends Shape
{
public static Square()
{
int a = 11;
System.out.println(a * a);
}
}
// Java代码7,无效的方法声明,需要返回类型。 (public static // CircleAttemptTwo()) //我迷失了这个,我可以帮忙吗? //并在解析时到达文件末尾},让我感到困惑。
/编辑非常感谢你。建设性的暴击。真的很有帮助,因为我最终得到了很多知识,我的最终代码是
class Shape {
public static void ShapeAttemptTwo()
{
class Circle extends Shape
{
public static CircleAttemptTwo()
{
int pi = 3.14;
int r=4;
}
}
class Rectangle extends Shape
{
public static Rectangle()
{
int l = 14;
int b = 10;
int z = l*b;
}
}
class Square extends Shape
{
public static Square()
{
int a = 11;
System.out.println(a * a);
}
}
答案 0 :(得分:1)
你做错了几件事:
1)你的“静态main()”属于一个类
2)每个模块只能有一个“公共课”。
建议更改:
public abstract class Shape
{
public static void main(String[] args) {
Shape rectangle = new Rectangle (14, 10);
System.println ("rectangle's area=" + rectangle.getArea ());
...
}
}
class Circle extends Shape {
...
}
class Rectangle extends Shape {
int l;
int b;
public Rectangle (int l, int b) {
this.l = l;
this.b = b;
}
public int getArea () {
return l * b;
}
}
...
答案 1 :(得分:0)
1)方法是没有返回类型。
2)直接在Rectangle类中有一个代码,而不是方法。
3)直接在Square类中有一个代码,而不是方法。
4)你正在使用非常奇怪和奇怪的代码风格和格式。
更新:格式已修复。
第二次更新:
1)代码已更改,并且格式化错误。
2)有三种静态方法没有定义返回类型。
Here是与该主题相关的更多信息。
答案 2 :(得分:0)
除了Tomas指出的错误之外:
5)您在class
声明中忘记了Square
这个词。
6)您不能直接在方法中声明public class
。 Java允许您声明类,在方法内部称为“本地类”。但是,我不确定这是不是你真正想做的事情;如果您这样做,则只能在Circle
方法中使用main
,因此您实际上并未创建层次结构。无论如何,当您声明本地课程时,它上面没有public
,protected
或private
个关键字,因此这解释了您看到的第一条错误消息。
编辑:基于第二篇文章:每个方法都必须有一个返回类型;如果您实际上不希望该方法返回任何内容,则返回类型应为void
。因此:
public static void CircleAttemptTwo()
{
//int pi = 3.14; should be
double pi = 3.14;
int r=4;
}
但是,构造函数不需要返回类型,但它们不能是static
。所以public Square()
和public Rectangle()
都可以。 CircleAttemptTwo
与类名不匹配,因此它不是构造函数。
“到达文件末尾”通常意味着您错过了}
,就像您在此处所做的那样。
3.14不是整数。
答案 3 :(得分:-1)
您需要更改
int pi = 3.14;
到
double pi = 3.14;
另外,静态方法位置错误。