当java中有两个同名的类时会发生什么?
我在同一目录中有以下文件 这是我的密码 boys.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 ="
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类
男孩,为什么
当编译器解析你的