java作用域public ,private ,protected 及不写时的区别

本文详细解析了Java中public、private、protected及默认修饰符的作用范围与使用场景,并通过生动的例子帮助理解各修饰符的区别。

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

public是公用的,其他类都可调用.

private是私有的,是最严格的,只有当前类(当前JAVA文件)可以调用,甚至继承当前类的子类都不能调用.

protected解决了private的子类不能调用的缺陷,可以理解为一个继承系下的可以调用

 

打个比方: PUBLIC相当于外人可以调用.private相当于只家庭内可以调用,protected相当于亲戚可以调用.

 

默认/缺省,个人认为是JAVA比较失败的设计.很多开发组都明确禁止缺省修饰符.

缺省的含义: 包内可以调用,即只要是同一个包内,都可以调用. 局限性比protected 大,比public 小. 从'外人'的角度看,类似于public,但又比public  多了个不伦不类的包限定.

 

 

作用域    当前类同一package  子孙类    其他package 
     
public      √    √ √ 
     
protected   √   × 
     
friendly    √    ×× 
     
private     ×   ×× 

 

 

作用域    当前类   同一package  子孙类    其他package 
     
public      √            √                √             √ 
     
protected   √            √               √            × 
     
friendly    √            √                ×             × 
     
private     √            ×                ×             × 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值