【发布时间】:2023-04-04 00:26:03
【问题描述】:
我正在教几个朋友一些基本的 PHP 面向对象概念,我想给他们一些真实的例子,但是很简单,所以他们可以掌握语法和 OO 的基础知识。我已经给他们做了以下练习:创建一个抽象 HTML 表单创建的小类。您可以为每个表单字段创建对象,每种类型的字段都有一个类。我还有一个接收表单字段对象的表单类。
你们还有其他关于示例或练习的想法吗?谢谢!
【问题讨论】:
我正在教几个朋友一些基本的 PHP 面向对象概念,我想给他们一些真实的例子,但是很简单,所以他们可以掌握语法和 OO 的基础知识。我已经给他们做了以下练习:创建一个抽象 HTML 表单创建的小类。您可以为每个表单字段创建对象,每种类型的字段都有一个类。我还有一个接收表单字段对象的表单类。
你们还有其他关于示例或练习的想法吗?谢谢!
【问题讨论】:
我关于 PHP 中的对象的博文可能会有用:
http://agiletoolkit.org/blog/how-to-use-object-oriented-programming-in-php/
它给出了如何浸渍“几何”类、三角形、矢量、正方形等的示例。
我在学习 OOP 时,正在看一本 C++ 中类似示例的书,但我忘记了名字。
【讨论】:
我一直很喜欢学习面向对象的思维方式的一个简单练习是采用一些简单的现实世界概念并将其建模为对象。这些概念可以是任何东西:
它非常与语言、平台无关等。其想法是抽象出所有实现细节(如 PHP 和 HTML)并专注于面向对象的思维。这种物体的模型看起来如何?它的属性是什么?它的约束是什么?它的行为如何?它如何与其他对象交互?
您可以通过它们的外部可观察特征和行为、它们的交互等来有效地设计您的抽象类型,然后在 PHP 或任何其他选择的语言中实现这些抽象。但重点是将面向对象的思想从具体的实现中分离出来。
【讨论】:
一些有用/实用的东西:
【讨论】:
尝试一个表格生成类,他们在其中接收一个数组,并根据它的内容显示一个表格。
【讨论】:
这取决于他们已经知道多少,如果他们有 C++/C 编程经验并开始 OO,那么来自数据库、表单、向量等的示例将起作用,如果他们的经验相对较少,那么你必须从抽象或现实生活中的例子开始,在另一个回复中引用的例子
A coffee maker A chicken A bicycle etc.
在理解面向对象的概念及其背后的理论方面非常有用(尽管您提到过您不喜欢这样的示例)。他们必须了解一切如何协同工作以形成一台机器,每个组件(类)如何工作和交互(公共方法和接口),同时隐藏自己的功能,并为其他组件(类)提供一组服务。
教师给出的一个非常流行的例子是收音机,用户不知道收音机内部是什么以及它是如何工作的,用户只知道它在做什么,而收音机将其功能提供给用户通过面板上的按钮使用。
这些基本示例非常适合初学者,然后应该立即有与之相关的编程作业。一旦他们了解了基础知识,我认为应该使用编程和应用示例而不是抽象示例。
【讨论】: