private
表示私有的,只能在同一个包中的同一个类使用
像这样就是在同一个包中的不同类用了private修饰的变量,这是非法的,那到底该如何给a赋值呢?可以在定义时就赋值,但这样的代码就没有可操作性,所以我们可以写一个方法来提供对外接口
class Test2{private int a;public int getA() {return a;}public void setA(int a) {this.a = a;}
}
public class Test {public static void main(String[] args) {Test2 test = new Test2();test.setA(10);System.out.println(test.getA());}
}
封装
这其实就是封装,将一些成员变量设置为私有的,然后再对外提供接口,也就是将数据和操作数据的方法进行有机结合,仅对外提供接口来和对象行进行交互
默认权限
当定义变量时没有加任何访问修饰限定符时,这个变量就是默认权限,只可以在同一个包当中使用
这是在同一个包中的不同类访问了b
注意,左边是在一个java文件中。右边和左边都是在一个包中,只不过不在一个Java文件中
public
表示共有的,同一个包中的同一个类,同包中的不同类,不同包中的子类,不同包中的非子类都可引用
protected
表示受保护的,在同一个包中可以使用,在不同包的子类中可以使用,但不同包的非子类中不可以使用