今天在跟廖雪峰大大学习Java的过程中无意间发现一个小问题,就是在一个类文件中能否创建多个类的事情,我当时的代码如下:
这时很明显编译器报错了(万能的eclipse,相比其他语言的编译器用得真是舒适),它告诉我们的是这个公有类型的LoginFailException应该定义在它自己的文件。What?我之前明明记得在一个类文件下是可以定义多个类的啊,怎么到这不行了??于是我赶紧翻回之前写的代码:
public class cccby_reference1
{
public static void main(String[] args)
{
Person1 p = new Person1();
String bob = "Bob";
p.setName(bob); // 传入bob变量
System.out.println(p.getName()); // "Bob"
bob = "Alice"; // bob改名为Alice
System.out.println(p.getName()); // "Bob"还是"Alice"?
}
}
class Person1
{
private String name;
public String getName()
{
return this.name;
}
public void setName(String name)
{
this.name = name;
}
}
这就很明显在类中是可以定义多个类的。但是为什么前面的不行呢?原来细心的小伙伴会发现,前面第二个定义的类前面有一个public!原因就在这,这是因为一个java文件中可以定义多个类,但是最多只有一个类被public修饰,并且这个类的类名与文件名必须相同。
因此总结出,一个类文件只能有一个public修饰的共有类,其他类想在这一个类文件下创建就不能包含有public,建议还是养成良好的编程习惯,一个类一个文件,这样有但程序较大时利于管理和调用。
版权声明:本文为qq_43684592原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。