Java在一个类文件中是否可以定义多个类?

  • Post author:
  • Post category:java


今天在跟廖雪峰大大学习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 版权协议,转载请附上原文出处链接和本声明。