Java中四个访问控制关键字:private、default、protect、public。他们的控制范围如下图所示:
范围 | 同一类 | 同一包 | 所有子类 | 所有类 |
private | * | |||
default | * | * | ||
protect | * | * | * | |
public | * | * | * | * |
带星号代表可以使用的范围,如果在声明变量时未加任何控制符,使用默认控制符default
示例代码如下:
package LearnDay3; public class TestAccesscontrol { public static void main(String[] args){ Boy boy=new Boy(); Person person=new Person(); person.print(); System.out.println(boy.Nickname); System.out.println(boy.name); } } class Person{ String name="person"; protected String Nickname="small"; private int id=00001; public void print(){ System.out.println(id); } } class Boy extends Person{ }
private仅在本类中可以调用,
不做声明的默认类可以在本类和同一个包下的其他类所使用
protected在本类,同一包下的其他类,所有的子类都可以使用
public是所有类都可以使用