Java -- 访问权限控制(public,protected,private)

本文详细介绍了Java中的访问权限控制(public, protected, private),通过具体示例展示了不同访问修饰符的作用范围,并形象地比喻了这些权限在实际应用中的意义。

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

访问权限控制(public,protected,private)

  • Java中最大权限到最小权限依次为:public,protected,private。
  • 类库:类库实际上是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。

 

1.public,接口访问权限。

使用public,意味着public之后的成员声明对每个人都是有用的。

eg:

这里我举个例子:

在一个项目Liu中,我新建了两个包,liusrc和liusrd。其中在liusrc中我建了两个类Cookie.Java和Dinner.java,在liusrd中我建了Lunch.java类。目录如下:

//Cookie类:
package liusrc;
public class Cookie {
	public Cookie(){
		System.out.println("123456");
	}	
	void bite(){
		System.out.println("098765");
	}
}

//Dinner类:
package liusrc;
public class Dinner {
	public static void main(String[] args){
		Cookie x = new Cookie();
		x.bite();
	}
}

由此Dinner输出:

123456

098765

//Lunch类:
package liusrd;

import liusrc.Cookie;  //导包

public class Lunch {
	public static void main(String[] args){
		Cookie x = new Cookie();
		//x.bite();   //不是public不可以访问
  /*
*如果我们想要x.bite();可以用,则我们需要将Cookie类的void bite(),设置为
*public void bite()
*/
	}
}

由此Lunch输出:

123456

2.private,别人无法访问的权限

即便是处于同一个包内的其他类也是不可以访问private成员的,通俗说就是自己隔离了自己。

 

3.protected:继承访问权限

protected处理的是继承的概念。只有继承他的类才可以访问他的方法。

eg:

//在liusrc中我建了类Cookie2.Java,其中bite()为protected。
package liusrc;
public class Cookie2 {
	public Cookie2(){
		System.out.println("abcd");
	}
	protected void bite(){
		System.out.println("qwer");
	}
}

//在liusrd中我建了Lunch2类,继承类Cookie2:
package liusrd;

import liusrc.Cookie2;

public class Lunch2 extends Cookie2{
	public Lunch2(){
		System.out.println("aaaaa");
	}

	public void sc(){
		bite();
	}
	
	public static void main(String[] args){
		Lunch2 lun = new Lunch2();
		lun.sc();
	}
}

output:

abcd

aaaaa

qwer

总之而已,三个访问权限可以做这样一个解释:

我们可以把一个文件夹当作一个社区,把每一个类当作每一个人。被public修饰的人是这个社区的民警,当有人遇到困难时,都可以向他寻求帮助;被protect修饰的人可以看作是一个家庭的父亲,只有他的儿子(后代)遇到困难时,他才可以伸出援手;被private修饰的人就是这个社区最自私的人,不管谁都不可以从他那得到任何东西。

本人原创,转载请注明,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楊木木8023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值