一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。

为了理解,自己动手试了一下几个类的关系。

1.与public class平行的类

package com.ss.learn2;

public class Student {
	private String name;
	private Integer age;
	
	public Student (String name,Integer age) {
		this.name = name;
		this.age = age;
	}
	
	public Integer getAge() {
		return this.age;
	}
	
	public static void main(String[] args) {
		Bro bro = new Bro(11);
		System.out.println(bro.getAge());
	}
}

class Bro{
	private Integer age;
	Bro(Integer age){
		this.age = age;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
}

可以看出,一个.java文件下可以有多个类(非内部类),但只能有一个类是public,且这个类必须与文件名一致。

2.内部类

静态内部类可以被其他静态方法引用。

package com.ss.learn2;

public class Student {
	private String name;
	private Integer age;
	
	public Student (String name,Integer age) {
		this.name = name;
		this.age = age;
	}
	
	public Integer getAge() {
		return this.age;
	}
	
	public static void main(String[] args) {
		Bro bro = new Bro(11);
		System.out.println(bro.getAge());
	}
	static class Bro{
		private Integer age;
		public Bro(Integer age){
			this.age = age;
		}
		public Integer getAge() {
			return age;
		}
		public void setAge(Integer age) {
			this.age = age;
		}
	}
}

对于这样的类,由于前面没有public,所以为默认(default)方式,所以可以为本包内可见,在同一个包下的其他类可以生成相应的对象并且调用相应的方法。

猜你喜欢

转载自blog.csdn.net/weixin_42070871/article/details/84977582