关于类:面向对象编程中的公共,私有和受保护是什么?

What are public, private and protected in object oriented programming?

面向对象编程中什么是公共的、私有的和受保护的?


它们是访问修饰符,帮助我们实现封装(或信息隐藏)。它们告诉编译器其他哪些类应该可以访问被定义的字段或方法。

private—只有当前类才能访问字段或方法。

protected—只有这个类的当前类和子类(有时也包括相同的包类)才能访问字段或方法。

public—任何类都可以引用字段或调用方法。

这假定这些关键字用作类定义中字段或方法声明的一部分。


这三个都是类中使用的访问修饰符和关键字。公共声明的任何内容都可以由类内或类外的任何对象使用,私有变量只能由类内的对象使用,不能通过直接访问进行更改(因为它可以通过友元函数等函数进行更改)。受保护节下定义的任何内容都可以由类及其激烈的阶级


它们不是真正的概念,而是特定的关键字,它们往往出现在流行语言(如C++和Java)中(语义略有不同)。

本质上,它们是为了允许类限制对成员(字段或函数)的访问。其思想是允许一个类型在另一个类型中访问的次数越少,可以创建的依赖关系就越少。这允许更容易地更改访问的对象,而不影响引用它的对象。

广义地说,公共意味着每个人都可以访问,私有意味着只有同一类的成员才可以访问,受保护意味着子类的成员也可以访问。然而,每种语言都添加了自己的东西。例如,C++允许您继承非公开的内容。在爪哇,也有默认(包)访问级别,并且有关于内部类等的规则。


公共项是可以从任何其他类访问的项。你只需要知道它是什么对象,你可以使用点运算符来访问它。受保护意味着类及其子类可以访问变量,但不能访问任何其他类,它们需要使用getter/setter来处理变量。private意味着只有该类可以直接访问变量,其他的一切都需要一个方法/函数来访问或更改该数据。希望这有帮助。


总而言之,在面向对象编程中,所有东西都被建模为类和对象。类包含属性和方法。public、private和protected关键字用于指定从其他类或其他.dlls甚至其他应用程序访问类的这些成员(属性和方法)。