Java 公共类型Main必须在其自己的文件中定义
在本例中,我想添加新形状。然而,我无法理解错误到底是怎么回事 “公共类型Main必须在其自己的文件中定义” 这发生在我的主方法上。我曾尝试在main前面添加“static”,但它不起作用!任何建议都将不胜感激Java 公共类型Main必须在其自己的文件中定义,java,oop,Java,Oop,在本例中,我想添加新形状。然而,我无法理解错误到底是怎么回事 “公共类型Main必须在其自己的文件中定义” 这发生在我的主方法上。我曾尝试在main前面添加“static”,但它不起作用!任何建议都将不胜感激 .java文件只能包含一个公共类/接口 在您的情况下,您可以将Main类或Shape接口移动到另一个文件。A.java文件只能有一个公共类/接口。因此,您可能希望将其中一个类移出文件。但是,您仍然可以使用对象变量在主类中调用它 因为您没有使用任何ActionListener,所以内部类没有
.java
文件只能包含一个公共类/接口
在您的情况下,您可以将
Main
类或Shape
接口移动到另一个文件。A.java文件只能有一个公共类/接口。因此,您可能希望将其中一个类移出文件。但是,您仍然可以使用对象变量在主类中调用它
因为您没有使用任何ActionListener,所以内部类没有意义,也没有用处 Java文件只能包含一个公共类或接口。一般来说,您将所有这些接口和类分离到单独的文件中。。。除非你想使用内部类,但那是另一回事question@Deadpool首先,您需要理解我的意思,因为它们可以是
公共的
,甚至可以是静态的
,允许在父实例之外创建它们class@MadProgrammer更具体地说,只有一个顶级类型。这很有效!!!很感谢你的帮助!是的,我这样理解你的意思!非常感谢你!
public interface Shape { }
class Circle implements Shape {
Circle(int radius) { /* ... */ }
}
class Rectangle implements Shape {
Rectangle(int height, int width) { /* ... */ }
}
public class Main {
public static void main (String[] args) {
Shape[] shapes = new Shape[2];
shapes[0] = new Circle(1);
shapes[1] = new Rectangle(1, 2);
writeShapes(shapes);
}
public static void writeShapes(Shape[] shapes){
for(Shape shape:shapes){
if(shape instanceof Circle) System.out.println("Circle");
else if(shape instanceof Rectangle) System.out.println("Rectangle");
}
}