Java扩展类乱七八糟

时间:2014-03-29 00:26:22

标签: java extend extends identifier

当我发布原版时,我不知道我吸烟的是什么锅,但我感觉很自然并想出了这个。我不是一个经验丰富的编码员,但整个帖子主要是作为一个大部分已被回答的问题。我现在知道类不能直接使用代码,核心结构更多。

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);
        }
    }

4 个答案:

答案 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)

你在开玩笑吗?您缺少Java的基本知识:

1)方法是没有返回类型。

2)直接在Rectangle类中有一个代码,而不是方法。

3)直接在Square类中有一个代码,而不是方法。

4)你正在使用非常奇怪和奇怪的代码风格和格式。 更新:格式已修复。

第二次更新

1)代码已更改,并且格式化错误。

2)有三种静态方法没有定义返回类型。

Here是与该主题相关的更多信息。

答案 2 :(得分:0)

除了Tomas指出的错误之外:

5)您在class声明中忘记了Square这个词。

6)您不能直接在方法中声明public class。 Java允许您声明类,在方法内部称为“本地类”。但是,我不确定这是不是你真正想做的事情;如果您这样做,则只能在Circle方法中使用main,因此您实际上并未创建层次结构。无论如何,当您声明本地课程时,它上面没有publicprotectedprivate个关键字,因此这解释了您看到的第一条错误消息。

编辑:基于第二篇文章:每个方法都必须有一个返回类型;如果您实际上不希望该方法返回任何内容,则返回类型应为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; 

另外,静态方法位置错误。