Java---private权限控制

本文详述了Java中的private关键字,用于控制访问权限,常用于修饰内部类、实例变量、静态变量、构造方法等。private限制了外部类直接访问,但可通过提供公共的getter和setter方法进行数据交互。private的真正价值在于通过接口控制,保护数据不被恶意篡改和保证私密性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

private:

属于Java语言中的关键字

作用:控制访问权限

可修饰类型:

  1. 修饰内部类
  2. 修饰实例(对象)变量
  3. 修饰静态变量
  4. 修饰构造方法
  5. 修饰接口与枚举

首先,我们来详细解释一下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存在的意义

本篇博客到此结束!

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值