天天看點

第14條:在公有類中使用通路方法而非公有域

如果類可以在他所在的包的外部進行通路,就提供通路方法。

如果類是包私有的,或者私有的嵌套類,直接暴露他的資料域并沒有本質的錯誤。

總之,公有類永遠都不應該暴漏可變的域。雖然還是有幾個問題,但是讓公有類暴漏不可變的域,起危害比較小。但是,有時候需要會用到包級私有的或者私有的嵌套類來暴漏域,無論這個類是可變還是不可變。

Demo:

package cn.partner4java.test;

public class BeanTest {
	private static final int HOURS_PER_DAY = 24;
	private static final int MINUTES_PER_HOUR = 60;
	
	public final int hour;
	public final int minute;
	
	private String username;
	
	public BeanTest(int hour,int minute) {
		this.hour = hour;
		this.minute = minute;
	}

	public String getUsername() {
		return username;
	}
	
	
}