作者一如既往的尽可能用白话来解释,希望能够让更多的朋友能够理解
private:
属于Java语言中的关键字
作用:控制访问权限
可修饰类型:
- 修饰内部类
- 修饰实例(对象)变量
- 修饰静态变量
- 修饰构造方法
- 修饰接口与枚举
首先,我们来详细解释一下private的功能
二话不说,先宣代码觐见!!!
class PrivateTest{
private static int i = 10;
}
public class Test {
public static void main(String[] args) {
System.out.println(PrivateTest.i);//ERROR:The field PrivateTest.i is not visible
}
}
可以看到,如果我在主类中调用外部类PrivateTest中用private修饰的整型数据,出现了一个error显示,这个变量不可见
如果我们在PrivateTest类内部调用这个i是否能够有效呢?实验一下
package com;
class PrivateTest{
private static int i = 10;
public static void outputTest() {
System.out.println(i);
}
}
public class Test {
public static void main(String[] args) {
PrivateTest.outputTest();
}
}
输出正常,因此,我们就可以理解,private的作用就是,控制外部类不能访问
那么我们怎么去让其中的数据能够被我们修改呢?
很简单,在含有private修饰元素的类中写一个(选择性提供)公有的get方法和一个set方法
package com;
class PrivateTest{
private static int i = 10;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
public class Test {
public static void main(String[] args) {
PrivateTest p = new PrivateTest();
p.setI(20);
System.out.println(p.getI());
}
}
可以看到,我们的修改和查看都完成了
可能有些朋友就会和作者本来一样觉得,这不就是多此一举嘛,用pravite修饰,再写方法,效果还不是和原来一样。
下面作者就来解释一下:
我们设置这两个方法就相当于开放了接口,如果我们关闭这两个接口呢?
关闭了set方法,我们就能保护我们重要的数据不被恶意篡改
关闭了get方法,我们就能保证数据的私密性
这些才是private存在的意义
本篇博客到此结束!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
希望对大家有所帮助,如果有错误,欢迎批评指正