简述public、private、protected三种访问修饰符的区别
public是公共变量的意思 就是在整个程序运行过程中都管用。
private是私有变量的意思 只有类内可直接访问 protected是受保护变量 类内和子类可直接访问, 继承类型意思是说把父类放在哪。举例: class A{ public: int a1; protected: int a2; private: int a3; }; A a; a.a1;//ok a.a2;//error a.a3;//error class B:public A{ public: void fb(){ a1;//ok a2;//ok a3;//error; } }; B b; b.a1,b.a2,b.a3与a.a1,a.a2,a.a3一样,因为是class B:public A,相当于把A放到了B的public部分。如 class B:private A{}; 则 b.a1,b.a2,b.a3都error,因为相当于把A全放到了B的private部分,从B来看这三个变量,都是private的。
publicprivateprotected的区别
在面向对象编程中,`public`、`private`和`protected`是访问修饰符,用于控制类、方法或变量的可访问性。它们之间的主要区别如下:
1. public(公共):
– 类型:类、变量、方法和构造函数
– 可访问性:可以在任何地方(同一包内或其他包)访问
– 继承:可被子类继承
– 外部包:可被其他包的代码访问
2. private(私有):
– 类型:变量、方法和构造函数
– 可访问性:只能在声明它们的类内访问
– 继承:不能被子类继承
– 外部包:不能被其他包的代码访问
3. protected(受保护):
– 类型:变量、方法和构造函数
– 可访问性:
– 对于类:只能在声明它们的类内以及同一包内的其他类访问
– 对于方法/变量:子类中可以访问父类的protected成员,而无论它们是在同一包内还是跨包
– 继承:可以被子类继承
– 外部包:可以被同一包内的其他类访问,但不能被其他包的代码访问
总结:
– `public`允许完全访问,包括子类、同一包内的其他类和其他包的代码。
– `private`允许仅在声明它们的类内访问。
– `protected`允许在声明它们的类内、同一包内的其他类以及子类(无论它们在哪个包中)访问。
访问修饰符的选择取决于您希望类、方法或变量在项目中的可访问性。通常情况下,将类成员声明为`private`以确保封装,将类成员声明为`public`以允许在任何地方访问,将类成员声明为`protected`以允许子类访问。
java中protected与default的区别
java中的访问控制权限 类的访问范围 A、public修饰类,表示该类在所有包中可见 B、(default)修饰类,表示该类仅在同一个包中可见 不能用protected和private修饰类成员变量及成员方法的访问范围 A、public 包内、包外,所有类中可见 B、protected 包内所有类可见,包外有继承关系的子类可见 (子类对象可调用) C、(default)表示默认,不仅本类访问,而且是同包可见。 D、private 仅在同一类中可见
private与final修饰方法的作用与区别
final和private不是同一个类型的修饰符。final表示类不可以被继承 ,而private则是访问限制修饰符。访问限制修饰符有public private protected 默认(什么都不写)外部类类只能被public 和 默认修饰内部类则可以被public private protected 默认修饰。被private修饰的内部类,只能在外部类的内部new 其对象。
本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com