较之c++ 中 public,proctected, private 三种訪问控制, java多了默认訪问控制。
java中四种訪问控制权限 简单描写叙述为一下四句:
1)private 仅本类可见 (同c++)
2)默认 对本包可见/包内訪问 (c++没有)
3)protected 对本包和全部子类可见 (c++中没有本包概念。较 默认訪问 能够被在其它包下的子类訪问)
4)public 对全部类可见 (同c++)
当中1)4)与c++同样,对2)3)做简单測试
3)protected 对本包可见測试例如以下:
package com.behavior;
public class Parent {
protected int i = 3;
}
package com.behavior;
//与Parent在同一个包下,无继承关系
public class Children {
public void action() {
Parent parent = new Parent();
System.out.print(parent.i);
}
}
package com.stratege;
import com.behavior.Children;
public class ChildrenTest {
public static void main(String [] args) {
Children children = new Children();
children.action();
}
}
验证:protected 对包内訪问的权限
2)默认 对包内訪问測试
将Parent中变量i 訪问权限做例如以下改动,Children, ChildrenTest不变
package com.behavior;
public class Parent {
int i = 3;
}
验证:默认对包内訪问的权限