当java中有两个同名的类时会发生什么?

当java中有两个同名的类时会发生什么?,java,Java,我在同一目录中有以下文件 这是我的密码 boys.java import java.io.*; public class boys { String name; int age; boys() { this.name="empty"; this.age=0; } void display() { System.out.println("Name =" + name + "\nAge ="

我在同一目录中有以下文件

这是我的密码

boys.java

import java.io.*;

public class boys
{
    String name;
    int age;

    boys()
    {
        this.name="empty";
        this.age=0;
    }

    void display()
    {
        System.out.println("Name =" + name + "\nAge ="+ age );
    }

}   
girls.java

import java.io.*;

class girls 
{
    String name;
    int age;

    girls(String name,int age)
    {
        this.name=name;
        this.age=age;
    }

    void display()
    {
        System.out.println("Name="+name+"Age="+age);
    }
 }
group.java`

    import java.io.*;


class boys
{
    int rollno;

    boys()
    {
        rollno=100;
        System.out.printf("%d",rollno);
    }
}

public class group
{
    public static void main(String args[])
    {
        boys b = new boys();

        girls g = new girls("sri divya",21);        

        g.display();
    }
}   
在使用javac命令后,我的问题是我只有一个boys.class文件为什么?及

在命令'java group'向我显示group.java文件中的boys类的结果,而不是boys.java文件中的boys类之后,为什么

如果我想在boys.java中输出boys类,而在group.java中有boys类,我该怎么办

为什么即使有两个相同的类名也没有错误


有人请帮助我

如果你给两个类命名相同,它们应该在不同的包中,当你想在另一个类中使用这两个类时,你必须使用其完全限定名引用(至少)其中一个类

如果两个类位于同名的同一个包中,那么
类加载器将只加载其中一个类
——这肯定不是您想要的。这也会导致Eclipse中出现错误,即:
类型Boys已经定义了

因此,如果你能帮助它,你真的不应该以同样的方式命名这些类(而且肯定不是在同一个包中)

更新:我已经测试了代码,在这种情况下,代码即使在抛出编译错误后也会运行,
Boys
类是由
ClassLoader
加载的,而
组中定义的类不是。实际上,
Groups.java
中的
Boys
类甚至不在字节码中,它在编译过程中被删除


PS:如果你在编写Java代码,你真的应该遵守约定(大写camelcase类名、camelcase方法、埃及方括号等),特别是如果你不是唯一一个在编写代码的人。

如果你给两个类命名相同,它们应该在不同的包中,当你想在另一个类中使用它们时,您必须使用其完全限定名引用(至少)其中一个

如果两个类位于同名的同一个包中,那么
类加载器将只加载其中一个类
——这肯定不是您想要的。这也会导致Eclipse中出现错误,即:
类型Boys已经定义了

因此,如果你能帮助它,你真的不应该以同样的方式命名这些类(而且肯定不是在同一个包中)

更新:我已经测试了代码,在这种情况下,代码即使在抛出编译错误后也会运行,
Boys
类是由
ClassLoader
加载的,而
组中定义的类不是。实际上,
Groups.java
中的
Boys
类甚至不在字节码中,它在编译过程中被删除


PS:如果你在编写Java代码,你真的应该遵守约定(大写camelcase类名、camelcase方法、埃及方括号等),特别是如果你不是唯一一个在编写代码的人。

如果你给两个类命名相同,它们应该在不同的包中,当你想在另一个类中使用它们时,您必须使用其完全限定名引用(至少)其中一个

如果两个类位于同名的同一个包中,那么
类加载器将只加载其中一个类
——这肯定不是您想要的。这也会导致Eclipse中出现错误,即:
类型Boys已经定义了

因此,如果你能帮助它,你真的不应该以同样的方式命名这些类(而且肯定不是在同一个包中)

更新:我已经测试了代码,在这种情况下,代码即使在抛出编译错误后也会运行,
Boys
类是由
ClassLoader
加载的,而
组中定义的类不是。实际上,
Groups.java
中的
Boys
类甚至不在字节码中,它在编译过程中被删除


PS:如果你在编写Java代码,你真的应该遵守约定(大写camelcase类名、camelcase方法、埃及方括号等),特别是如果你不是唯一一个在编写代码的人。

如果你给两个类命名相同,它们应该在不同的包中,当你想在另一个类中使用它们时,您必须使用其完全限定名引用(至少)其中一个

如果两个类位于同名的同一个包中,那么
类加载器将只加载其中一个类
——这肯定不是您想要的。这也会导致Eclipse中出现错误,即:
类型Boys已经定义了

因此,如果你能帮助它,你真的不应该以同样的方式命名这些类(而且肯定不是在同一个包中)

更新:我已经测试了代码,在这种情况下,代码即使在抛出编译错误后也会运行,
Boys
类是由
ClassLoader
加载的,而
组中定义的类不是。实际上,
Groups.java
中的
Boys
类甚至不在字节码中,它在编译过程中被删除

PS:如果你在编写Java代码,你真的应该遵守约定(大写camelcase类名、camelcase方法、埃及方括号等),特别是如果你不是唯一一个在编写代码的人

下面是我在使用javac命令后的问题,我只有一个问题 男孩。班级档案为什么

给定包中只能有一个名为
boys
的类,因此编译器将只生成一个

在命令“javagroup”向我显示boys类的结果之后 在文件group.java中,而不是文件中的boys类 男孩,为什么

当编译器解析你的