我是Java的初学者。有谁可以帮我理解以下概念?
我在这里做的是我尝试创建一个类Sample
,我在下面提到,我在打印You are in Main Method
class Sample
{
public static void main(String args[]) {
System.out.println("You are in Main Method");
}
}
并将此java文件另存为 Student.java 。
我在Eclipse中没有收到任何错误。
现在,我在此类前面指定了public
为public class Sample
,我收到了错误消息。
有人可以用正确的答案向我澄清,因为我发现这很难理解吗?
答案 0 :(得分:4)
在Java中,所有范围为public
的类必须保存在文件中,该名称与此类的名称完全相同。因此,如果您有名为Sample
的类,则必须将其保存在名为Sample.java
的文件中。如果类名为Student
,则文件应命名为Student.java
其中一个原因是packages
已命名和class
名称可以轻松映射到实际系统路径。
答案 1 :(得分:0)
确保类名等于附加“.java”的文件名。因此,如果您将类命名为Sample
,则该文件应命名为Sample.java
。这就是您收到错误的原因,因为您的类名与您命名文件的名称不同。
对于将来的引用,当您收到编译器错误/运行时错误时,请确保在此处列出错误。这使得处理问题变得容易得多,并且您将获得实际解决问题的答案的机会增加。
答案 2 :(得分:0)
必须使用相同的名称保存所有公共类。 因此,如果您有名为Sample的类,则必须将其保存在名为Sample.java的文件中
如果您使用包,则必须将文件保存在此文件夹中。 例如,您必须将Sample.java保存在文件夹root / com / example。
中package com.example;
public class Sample{
public static void main(String[] args){
// put here your code
}
}
答案 3 :(得分:0)
公共类必须有自己的编译单元(即必须与类名匹配的.java
文件)并编译为ClassName.class
个文件。
这样JDK知道它应该在哪里生成输出.class
文件,并且JVM知道从哪里加载.class
文件。
一个例外是内部/嵌套类,它们不需要单独的文件,并且将其字节代码生成到OuterClassName#InnerClassName.class
等文件中。内部类存储在与定义它们的外部类相同的.java
文件中。
注意:ClassName
,OuterClassName
和InnerClassName
是您定义的类的名称。
答案 4 :(得分:0)
首先你阅读修改的可见性我认为你很好理解你的问题
访问修饰符
Same Class Same Package Subclass Other packages
公共Y Y Y Y.
保护Y Y Y N.
无访问修饰符Y Y N N.
私人Y N N N