測試源碼:
package com.jidongcloud.test01;
/**
* ClassName:AccessRights
* PackageName:com.jidongcloud
* Description: 第一種情況:當前類中測試
* remark:
* ctrl+alt+l格式化快捷方式
*
* @date:2020/6/7 11:49
* @author:robin
*/
public class AccessRights {
private int xx;
int yy;
protected int zz;
public int qq;
//System.out.println(xx); //輸出語句只能在方法中使用。
public void m1(){
System.out.println(xx); //所有屬性均可以在當前類中適用
System.out.println(yy);
System.out.println(zz);
System.out.println(qq);
}
}
package com.jidongcloud.test01;
/**
* ClassName:TestRights
* PackageName:com.jidongcloud.test01
* Description: 第二種情況:當前包中測試。
*定義類成員時遵循訪問權限最小化原則。
* @date:2020/6/7 11:53
* @author:robin
*/
public class TestRights {
public static void main(String[] args) {
AccessRights as=new AccessRights();
// System.out.println(as.xx);//私有屬性只能在當前類中使用。當前包中就不可以使用。
System.out.println(as.yy);
System.out.println(as.zz);
System.out.println(as.qq);
}
}
package com.jidongcloud.test02;
import com.jidongcloud.test01.AccessRights;
/**
* ClassName:TestRights
* PackageName:com.jidongcloud.test01.test02
* Description:第三中情況:派生類所在的包中測試(不在當前包)
*
* 定義類成員時遵循訪問權限最小化原則。
*
* @date:2020/6/7 11:59
* @author:robin
*/
public class TestRights extends AccessRights {
public void m2() {
// System.out.println(xx);//私有的只能在當前包中使用
// System.out.println(yy);//默認的只能在當前包中使用
System.out.println(zz);//受保護的可以在派生類中使用
System.out.println(qq);//公共的可以在任何包中使用
}
public static void main(String[] args) {
TestRights ts=new TestRights();
// System.out.println(ts.xx);//私有的只能在當前包中使用
// System.out.println(ts.yy);//默認的只能在當前包中使用
System.out.println(ts.zz);//受保護的可以在派生類中使用
System.out.println(ts.qq);//公共的可以在任何包中使用
}
}
package com.jidongcloud.others;
import com.jidongcloud.test01.AccessRights;
/**
* ClassName:TestRights
* PackageName:com.jidongcloud.others
* Description: 第四種情況:在其他包中測試。
*定義類成員變量時候遵循訪問權限最小化原則。
* @date:2020/6/7 12:15
* @author:robin
*/
public class TestRights {
public static void main(String[] args) {
AccessRights as=new AccessRights();
// System.out.println(as.xx);//私有屬性
// System.out.println(as.yy);//默認屬性
// System.out.println(as.zz);//受保護屬性
System.out.println(as.qq);//這時候只能qq成員變量可以訪問到。//int類型默認初始化爲 0;
}
}