private的访问权限

本文详细解释了编程中private, public, protected三种访问标号的访问范围,并探讨了类继承后属性的权限变化,包括private属性无法被继承,而protected和public属性在不同继承方式下权限的变化。

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

非常基础的概念问题
第一:private, public, protected 访问标号的访问范围。




private :只能由1.该类中的函数、2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。

protected :可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。

public :可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。

注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。

第二:类的继承后方法属性变化。
private 属性不能够被继承。
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;

如下所示:
public: protected: private:
public继承 public protected 不可用
protected继承 protected protected 不可用
private继承 private private 不可用

protected继承和private继承能降低访问权限。
在Java中,`public`和`private`是两种不同的访问权限修饰符,用于控制类、方法和变量的可见性和访问范围。 1. **`public`访问权限**: - 被`public`修饰的类、方法和变量可以被任何其他类访问。 - `public`修饰的成员在整个项目中都是可见的,无论是同一包内的类还是不同包内的类。 - 使用`public`修饰符可以实现类的完全开放,使其可以被其他类自由使用。 2. **`private`访问权限**: - 被`private`修饰的成员(方法和变量)只能在定义它们的类内部访问。 - `private`修饰的成员对其他类是不可见的,即使是同一包内的其他类也无法访问。 - 使用`private`修饰符可以实现数据的封装,保护类的内部实现细节不被外部修改。 总结: - `public`修饰符提供了最大的可见性,适用于需要被广泛访问的成员。 - `private`修饰符提供了最高的封装性,适用于需要严格保护的内部实现细节。 示例代码: ```java public class MyClass { public int publicVar; private int privateVar; public void publicMethod() { System.out.println("This is a public method."); } private void privateMethod() { System.out.println("This is a private method."); } public void accessPrivateMethod() { privateMethod(); // 可以访问同一类中的private方法 } } class OtherClass { public void accessMyClass() { MyClass myClass = new MyClass(); myClass.publicVar = 10; // 可以访问public变量 myClass.publicMethod(); // 可以访问public方法 // myClass.privateVar = 20; // 编译错误,无法访问private变量 // myClass.privateMethod(); // 编译错误,无法访问private方法 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值