理解OOP有问题。公众成员还是接受者和接受者?
我正在努力学习OOP,我读了很多关于OOP的话题,但我仍然没有完全掌握这些概念 我要求就此事作出澄清,特别是:理解OOP有问题。公众成员还是接受者和接受者?,oop,Oop,我正在努力学习OOP,我读了很多关于OOP的话题,但我仍然没有完全掌握这些概念 我要求就此事作出澄清,特别是: 类中有公共成员可以吗?还是应该始终使用getter和setter?OOP或面向对象编程是编写程序的范例(方法)。基本上,它简化了程序的创建,因为它将所有内容都视为类表示的对象 OOP(适用于所有语言)的基本概念很清楚: 继承:对象A(或类)能够从另一个对象继承,比如说对象B。这意味着对象A(在本例中为子对象)将继承对象B(在本例中为父对象)的属性和方法。这个概念意味着您可以重用代码
类中有公共成员可以吗?还是应该始终使用getter和setter?OOP或面向对象编程是编写程序的范例(方法)。基本上,它简化了程序的创建,因为它将所有内容都视为类表示的对象 OOP(适用于所有语言)的基本概念很清楚:
- 继承:对象A(或类)能够从另一个对象继承,比如说对象B。这意味着对象A(在本例中为子对象)将继承对象B(在本例中为父对象)的属性和方法。这个概念意味着您可以重用代码
- 多态性:顾名思义,它意味着比对象更具体地说,方法可以有多种形式。怎么用?这个概念与继承有关。假设您有一个父类是
,它有一个名为Animal
的方法来打印一些文本,您有两个子类,分别名为talk()
和dog
。两个子类都将从父类cat
继承方法Animal
。猫和狗都是动物,但它们说话的方式不同。为了解决这个问题,我们将使用多态性的概念在子类中重新定义方法talk()
,而无需更改方法的名称或签名talk()
- 封装:最后,理解这个概念应该回答问题2和3。基本上,这意味着每个对象或类将包含在自己的成员(提供数据)和方法(提供数据操作)中。这样,您所做的是将数据与作为对象的一个容器中的方法绑定。例如,让我们把空调简称为AC。空调有属性,比如:品牌、型号、温度。此外,它还封装了操作温度的方法:
和tempDown()
将温度降低和升高一度。 这里你需要了解的是,空调降低或升高温度的方法已经内置在里面了。不是我们这些人降低或升高温度,当然我们确实按下了按钮,但这只会触发这样做的方法。功能本身构建在AC内部而不是外部,也就是说,操纵AC的方法应该封装在AC内部。另一侧的属性根据概念应该是tempUp()
。空调的属性,例如温度,属于空调本身,它不应该是公共的。将类的属性设置为私有的
是不好的做法,因为它违背了封装概念。因此,只有用属性封装的方法才能访问它们。如果需要从类外部编辑对象的属性,可以创建一个方法来执行此操作。方法是public
public
public
或具有getter/setter,这意味着任何人都可以从类外访问您的余额,并将其更改为他们喜欢的任何值。另一方面,如果您具有属性private
,则该类决定您可以通过这些方法进行何种类型的数据操作。一种只打印余额的方法,或者如果从另一个帐户提取,只会增加资金的方法,您甚至可以通过在每个方法中记录每个操作来添加额外的安全层
您可以在混合中添加抽象(基本上通过接口分离代码的声明和实现)和重载。您可以在此处阅读更多信息: