Java---private权限控制

it2022-05-05  129

作者一如既往的尽可能用白话来解释,希望能够让更多的朋友能够理解

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存在的意义

本篇博客到此结束!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

希望对大家有所帮助,如果有错误,欢迎批评指正


最新回复(0)