用类名创建一个类

时间:2013-02-01 11:32:42

标签: java class public

我是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中没有收到任何错误。

现在,我在此类前面指定了publicpublic class Sample,我收到了错误消息。

有人可以用正确的答案向我澄清,因为我发现这很难理解吗?

5 个答案:

答案 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文件中。

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

答案 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