0

我是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我得到了一个错误。

谁能用正确的答案为我澄清一下,因为我发现这很难理解?

4

5 回答 5

4

在 Java 中,所有具有作用域的类都public必须保存在文件中,该文件的名称与此类的名称完全相同。因此,如果您有名为的类Sample,则必须将其保存在名为Sample.java. 如果类被命名Student,那么文件应该被命名Student.java

原因之一是packagesnamed 和classnames 可以很容易地映射到真实的系统路径。

于 2013-02-01T11:34:46.573 回答
0

确保类名与附加“.java”的文件名相同。所以如果你给你的类命名,Sample那么文件应该命名为Sample.java. 这就是您收到错误的原因,因为您的类名与您为文件命名的名称不同。

对于将来的参考,当您遇到编译器错误/运行时错误时,请确保在此处列出错误。它使处理问题变得更加容易,并且您获得真正解决问题的答案的机会增加了。

于 2013-02-01T11:39:24.553 回答
0

所有公共类必须以相同的名称保存。因此,如果您有名为 Sample 的类,则必须将其保存在名为 Sample.java 的文件中

如果您使用包,则必须将文件保存在此文件夹中。Example com.example,您必须将 Sample.java 保存在文件夹 root/com/example 中。

package com.example;

public class Sample{
   public static void main(String[] args){
   // put here your code
  }
}
于 2013-02-01T11:39:44.843 回答
0

公共类必须有自己的编译单元(即.java必须与类名匹配的文件)并编译成ClassName.class文件。

这样,JDK 知道它应该在哪里生成输出.class文件,而 JVM 知道从哪里加载.class文件。

一个例外是内部/嵌套类,它们不需要单独的文件,并且将它们的字节码生成到文件中,例如OuterClassName#InnerClassName.class. .java内部类与定义它们的外部类存储在同一个文件中。

注意:ClassNameOuterClassNameInnerClassName您定义的类的名称。

于 2013-02-01T11:40:40.020 回答
0

首先你阅读修改的可见性我认为你很好地理解你的问题

访问修饰符

Same Class  Same Package    Subclass    Other packages

public YYYY protected YYYN 无访问修饰符 YYNN private YNNN

于 2013-02-01T11:42:59.687 回答