战舰世界t优:一个JAVA程序哪里错了

来源:百度文库 编辑:高校问答 时间:2024/05/10 12:29:27
class Game
{
Game()
{
}
Game(int i)
{
System.out.println("Game constructor");
}

class BoardGame extends Game
{
BoardGame(int i)
{
super(i);
System.out.println("BoardGame constructor");
}
}

public class Chess extends BoardGame
{
Chess()
{
super(11);
System.out.println("Chess constructor");

}

public static void main(String [] args)
{
Chess x = new Chess();
}
}

}

大家帮忙看看吧

不能在一个类的内部在定义其他的类,所以对于第一个Game它的两个{}应该只包含他本身,改一个}的位置就可以了,具体如下:
class Game
{
Game()
{
}
Game(int i)
{
System.out.println("Game constructor");
}
} //在这里就结束第一个超类的定义

class BoardGame extends Game
{
BoardGame(int i)
{
super(i);
System.out.println("BoardGame constructor");
}
}

public class Chess extends BoardGame
{
Chess()
{
super(11);
System.out.println("Chess constructor");

}

public static void main(String [] args)
{
Chess x = new Chess();
}
}

class Game
{
Game(int i)
{
System.out.println("Game constructor");
}
}

class BoardGame extends Game
{
BoardGame(int i)
{
super(i);
System.out.println("BoardGame constructor");
}
}

public class Chess extends BoardGame
{
Chess()
{
super(11);
System.out.println("Chess constructor");
}

public static void main(String [] args)
{
Chess x = new Chess();
}
}

一般来说JAVA程序是从main方法开始执行的,当然也不全是比如像Applet就没有main方法,就是这个方法要放到public类中,而不要执成内部类!

其次你在写java程序时应该使用关键字,由大到小是包—》类-》方法,如你想使某个方法能让所有的类都可以访问执public,(当然在一个模块内只能有一个public 类)

下面是我乱改了一下,可以运行,但也没有什么实际意义可以看看
class Game
{
Game()
{
}
public Game(int i)
{
System.out.println("Game constructor");
}

}

class BoardGame extends Game
{
public BoardGame(int i)
{
super(i);
System.out.println("BoardGame constructor");
}
}

public class Chess extends BoardGame
{
public Chess()
{
super(11);
System.out.println("Chess constructor");

}

public static void main(String [] args)
{
Chess x = new Chess();
}
}

首先说,内部类里放置主方法,这就是不允许的。所以你必须将Chess类定义成为单独的类。
这又就出现了另一个问题,你的Chess类继承自内部类BoardGame,在Chess类定义为单独的类时,它是访问不到BoardGame的。所以又需要把BoardGame定义为单独的类。
其结果就是楼上的代码。但不同意楼上的说法,在一个类的内部可以定义其他的类,也就是内部类,我们在注册事件时最经常使用到内部类。