java - 为什么如果我的文件名和公共(public)类名不同,我会收到编译错误?

标签 java constructor compiler-errors access-specifier

public class constprac {

    public static void main(String args[]  )
    {
        consttest class1=new consttest("ria");
        class1.showName();
    }
}


**public** class consttest{
    String gname;
    public consttest(String name){``
        gname=name;
    }
    public String setName(){
        return gname;
    }
    public void showName(){
        System.out.println("YOUR 1ST GirlFriend IS "+ setName());
    }
}

最佳答案

why if my file name and public class name differs then i get compile error?

因为 Java 是这样定义的:如果您有一个 public 类,它必须位于以该 public 类命名的文件中。

详情可见§7 of the JLS 。它本质上是说,如果源代码存储在文件系统中,则需要施加一组特定的要求,以使包系统以一致的方式工作。

关于java - 为什么如果我的文件名和公共(public)类名不同,我会收到编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902508/

相关文章:

javascript - 如何在 MyAdapter 的 ListView 中添加广告

c++ - "Reset"对象为默认值;还记得构造函数吗?

c++ - 为什么在最后一行也没有调用复制构造函数?

c++ - 试图在另一个头文件中的一个头文件中使用一个类

java - JSF selectonemenu 无法实例化类

Java-TestNG : Read an excel file, 通过 TestNG 和 Apache POI 断言并写回 excel 文件

android - 建立项目时Android Studio错误

ios - 错误 : could not build Objective-C module 'Foundation'

java - 如何在Java中设置和使用类,库,包?

java - 调用具有未知参数的构造函数