java中的protected怎么用?和private的区别?

本文解释了Java中protected和private访问修饰符的区别,包括它们如何限制类成员的访问范围,以及在基类派生类中的应用。
部署运行你感兴趣的模型镜像

java中的protected怎么用?和private的区别?

  java
专业回答
JAVA王朝 团队    javaceshiliu
2011-03-08 10:47
这两个是访问类中成员权限的限制符.在类外如果想使用类中的成员,只能直接使用public类型的,protected和private都是不能访问的,对于类外使用而言,这两个是完全相同的.

但是在基类的派生类中,可以直接访问继承而来的protected成员,但是不能访问private限制的成员.所以在派生类中,可以访问基类继承而来的public和proected两种类型的成员.在public公有派生下,继承而来的成员访问权限不变.protected派生下,public和protected都变成protected,private派生下,所有的继承下来都是private了.

为您推荐:

2011-03-08 10:50 wanghe_love  | 六级
protected 在本包中可以调用该方法;
private 只能在本类中调用;
其实都是在写框架的时候用得到。为了只暴露给调用者部分接口用的。
不过可以通过反射获取到任何修饰符的属性;
评论  |  14  1
2011-03-08 10:48 lyx2000s  | 四级
protected 受保护的
private私有的
private表示该属性或方法为私有,只能被他的类使用
protected表示该属性或方法可被同一包内或子类使用.
评论  |  4  10
2011-03-08 10:47 a609122285  | 五级  最快回答
protected 用法和public什么的都一样 
和private的区别在于用private修饰的方法只能在该类中使用,即使是和该类有关系的其他类也不能访问
用protected修饰的方法 除了能在该类中访问外其他合该类有关系的类也可以访问。
评论  |  1  6
2011-03-08 11:18 wap_1989  | 二级
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。 

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。 

作用域 当前类 同一package 子孙类 其他package 

public √ √ √ √ 

protected √ √ √ × 

friendly √ √ × × 

private √ × × × 

不写时默认为friendly

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

Java中的访问修饰符用于控制类、接口、变量方法的可见性访问权限。`public`、`protected``private`是Java中的三种访问修饰符,它们之间的区别主要体现在访问范围适用对象上。 ### public `public`修饰符表示公开的访问权限,被`public`修饰的类、接口、变量方法可以被所有类访问,无论这些类是否在同一个包中。例如,一个`public`类的方法可以被任何其他类调用。`public`适用于类、接口、变量方法[^1]。 ### protected `protected`修饰符表示受保护的访问权限,被`protected`修饰的变量方法可以被同一包中的类访问,同时也可以被不同包中的子类访问。这意味着即使子类不在同一个包中,只要它是父类的子类,就可以访问父类中被`protected`修饰的成员。需要注意的是,`protected`不能用于修饰外部类[^1]。 ### private `private`修饰符表示私有的访问权限,被`private`修饰的变量方法只能在定义它们的类内部访问。这意味着其他类,即使是子类或同一包中的类,也无法直接访问这些成员。`private`也不能用于修饰外部类[^1]。 ### 示例代码 下面是一个简单的示例,演示了不同访问修饰符的使用: ```java // 公共类 public class PublicClass { // 公共方法 public void publicMethod() { System.out.println("Public method"); } // 受保护的方法 protected void protectedMethod() { System.out.println("Protected method"); } // 私有方法 private void privateMethod() { System.out.println("Private method"); } } // 子类 class SubClass extends PublicClass { public void accessMethods() { // 可以访问公共方法 publicMethod(); // 可以访问受保护的方法 protectedMethod(); // 无法访问私有方法 // privateMethod(); // 编译错误 } } ``` 在上述代码中,`PublicClass`是一个公共类,它包含了一个公共方法`publicMethod`、一个受保护方法`protectedMethod`一个私有方法`privateMethod`。`SubClass`继承自`PublicClass`,它可以访问`PublicClass`中的公共受保护方法,但不能访问私有方法。 ### 访问权限总结 - `public`:对所有类可见。 - `protected`:对同一包内的类所有子类可见。 - `private`:仅对定义它们的类可见。 通过合理使用这些访问修饰符,可以有效地控制代码的封装性安全性,提高程序的健壮性可维护性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值