php是一种面向对象的语言,那么什么是面向对象的呢?

电脑杂谈  发布时间:2020-04-05 20:12:03  来源:网络整理

面向对象的语言_面向对象化语言_html语言对象格式实验报告

php是一种面向对象的语言,那么什么是面向对象的呢?

面向过程的传统编程思想:

我相信许第一次接触编程是C语言. C语言是一种非常典型的面向过程的编程语言,将要实现的功能描述为从头到尾的连续“步骤(过程)”. 按顺序完成这些步骤. 如果步长很大,则可以将该步再次细分为子步,依此类推.

从头到尾执行程序,并获得所需的结果.

示例: 完成“注册学习”以传递智慧的问题可以这样实现:

第一步,学生建议注册并提供姓名和照片

第二步是咨询老师以接收照片并注册学生的姓名

第三步,学生支付费用(支付到学校帐户)并获得付款凭证

第四步是咨询老师以验证证书并分配课程

第五步,最终结果是: 完成注册,学生可以在指定的时间参加指定的班级(教室),并且在中提供了学生的信息.

现代的面向对象编程思想:

将要实现的功能描述为“对象/对象”任务-实际上是一样的: 功能的实现取决于实体的“动作/操作/动作”. 在完成最终功能的过程中,需要实现其他中间功能(过程),然后调用其他对象(或本身)来实现中间功能.

整个系统的完成(功能的实现)被视为一个对象,它在其中发挥各自的“能力”,并在内部进行协调有序的调用过程.

示例: 完成“申请学习”以传递智慧,可以按以下方式处理: 学生对象: 有姓名和照片,有自己的班级,可以“申请注册”,可以“付费”,请教老师对象: 可以接收照片并注册名称以分配课程. 班级对象: 有班级编号,开始日期和教室.

基本的面向对象概念:

类和对象: 类是描述事物类别的通用术语,是具有相同特征的事物类别的通用名称(称为). 例如,人是一类(人),狗也是一类(狗类)),它们属于较大的类别(哺乳动物),桌子面向对象的语言,手机,书籍都是类别;

对象是类中的确定的具体“对象”和“物理对象”(相对而言,类是抽象的通用名称). 对象与类是分不开的,或者对象必须属于一个类-有一个类具有一个对象,首先有一个类,然后是一个对象.

例如,“黄小明”是“人”类的具体对象,而“阿煌”是“狗”类的具体对象.

类确定对象的所有特征信息. 例如,如果我是人类,那么我有: 姓名,性别,年龄,我仍然可以吃饭,走路和说话.

一个对象的所有特征信息均由其所属的类别确定,但每个对象可能具有其自己不同的特征信息. 例如,有一个名为吴六七的性别对象,该对象将编写程序,另一个对象可能叫张子怡,性别为女性,可以行动.

从语法上讲,一个类可以具有自己的“变量”和“功能”,但是在当前,它在技术上被相应地称为“属性”和“方法”. 一个类也可以有自己的常量. 这些属性面向对象的语言,方法和常量称为“类”的“成员”.

对象的创建:

这是一个“创建”特定“对象”的类-术语是对象. 创建对象的语法可以是:

面向对象的语言_html语言对象格式实验报告_面向对象化语言

新类名();

新变量名(); //变量的内容是代表类名的字符串.

新对象名称(); //创建该对象所属类的新对象

新自我; //用于在类的方法中创建此类型的对象.

类名:: getNew(); //定义该类的静态方法以获取该类的对象

对象的使用:

使用其属性或方法. 使用属性可以视为变量. 使用该方法,可以将其视为函数.

一个类可以并且只能包含以下三个成员(代码): 变量(称为属性),函数(称为方法)和常量(称为类常量).

常规属性:

The

属性是在类中定义的变量. 需要使用public或var对其进行修改(定义),也可以使用protected或private对其进行修改(请参阅后续知识).

在定义时不能分配任何值或(初始)值,但只能是“直接值”(常量值)或常量,不能是变量值或计算值或函数调用返回值值.

使用属性形式:

对象名称->属性名称;

属性是可读写的(值赋值).

常规方法:

The

方法是在类中定义的函数,但是可以在该函数的前面使用公共,受保护的和私有的修改,或者可以将其省略.

但是,此方法的调用(使用)不能独立执行,而是需要通过对象进行调用.

方法中的$ this关键字具有特定含义: 它表示调用该方法的对象.

获取$ this的类: get_class($ this)

静态属性:

仅属于(取决于)类的属性,可以通过类名称直接访问该属性.

html语言对象格式实验报告_面向对象化语言_面向对象的语言

定义表:

static $静态属性名称[=初始值]; //省略访问修饰符,默认为public,并且初始值也应为直接值或常量

使用形式: 类名:: $静态属性名; //可以分配值;

静态方法:

仅属于(取决于)类的方法,该方法由类名直接调用(但是,已经可以使用类的对象名来调用新版本的PHP)

定义表:

[访问修饰符]静态函数$静态方法名称(…){……}

使用表格:

类名::静态方法名(...);其中,类名也可以替换为类的对象名,带有类名,自身等内容的字符串变量名.

自定义关键字:

用于方法中以指示方法的类别.

静态关键字:

除了self角色以外,它还具有self角色,也具有更灵活的角色,即所谓的“后期静态绑定”. 注意: $ this不能在静态方法中使用,非静态方法不应在静态方法中调用.

类常量:

仅属于(取决于)类的常量,可以通过类名直接访问该常量(但是,可以使用类的对象名来调用新版本的PHP)

定义表:

const常量名称=初始值; //必须分配初始值

使用表格:

类名::常量名;其中,类名也可以替换为类的对象名,带有类名,自身等内容的字符串变量名.

构造方法(功能):

构造函数是在实例化一个类(出现新对象)时首先自动调用的方法.

该构造方法适用于创建一些对象(在使用该对象之前)以对该对象进行一些初始化工作.

定义的形式: [访问修饰符]函数__construct(...){......}; //访问修饰符始终需要公开(或省略).

html语言对象格式实验报告_面向对象化语言_面向对象的语言

调用形式: 实际上,没有直接调用形式,但是当new是一个对象时调用它: new C1(“小花”,18,“女”);

如果在类中定义了构造方法,则在实例化该类时将调用该方法,并且实例化时的参数需要与构造方法的参数匹配.

如果在类中未定义构造函数,则将自动调用其父类的构造函数(如果有),并且实例化时的参数必须与父类的构造函数的参数匹配.

您还可以在当前类的构造函数中调用父类的构造函数: parent :: __ Construct();

破坏性方法(功能):

析构函数方法是一种在销毁对象时自动调用(执行)的方法. 破坏对象的几种情况:

脚本程序完成运行并自动销毁;

显式取消()对象变量,它将被销毁;

更改对象变量的值并销毁;

析构函数方法适用于在销毁对象时清理(销毁)对象中使用的某些资源-但实际上,现代PHP具有内置的垃圾收集机制,通常不需要清理.

定义形式: function __destruct(){......}; //注意: 仅公开,没有参数

调用形式: 无需在代码中手动调用,而是在代码运行结束时自动调用(执行).

如果在类中定义了析构函数方法,则在销毁对象时将调用该方法.

如果在类中未定义任何析构函数方法,则在销毁对象时将调用其父类的析构函数方法(如果有)

类继承:

基本含义: 类是用于描述现实中同一事物的共同特征的抽象模型. 但是,在现实世界中,不同类型的事物之间通常存在某些关系. 例如,动物是具有某些特征的“类别”. 但是脊椎动物也是一类,也具有某些特征,同时具有动物的所有特征. 哺乳动物也是一类具有脊椎动物特征和所有特征的动物. 依此类推,然后在面向对象的编程中,我们定义的类也可以具有相似的关系特征,即类的继承.

**基本语法: **扩展

**基本概念: **

**继承: **一个类从另一个称为继承的现有类中获取其特征.

**派生: **从现有类中生成一个新类,称为派生.

**父类/子类: **现有类是父类,新创建的类是子类.

**单一继承: **类只能从上级类继承其特征信息. PHP和大多数面向对象的语言都是单继承模型. C ++是多重继承.

**扩展: **在子类中,定义一些新的唯一特征信息(属性,方法和常量). 没有扩展,继承就毫无意义.

html语言对象格式实验报告_面向对象化语言_面向对象的语言

访问控制修饰符:

public: 在所有位置均可访问(使用).

受保护的: 只能在该类以及该类的子类或父类中对其进行访问(使用).

私有: 仅可在此类中访问(使用).

parent关键字: 用于表示(表示)该类中该类的父类. 可用于访问父类的属性或方法或常量.

在构造和解构方法中调用上级相同方法的问题:

当子类中没有定义构造函数时,将自动调用父类的构造函数. 因此,在实例化子类时,需要遵循父类的构造方法的形式.

子类定义了自己的构造方法,它不会自动调用父类的构造方法,但可以手动调用: parent :: __ Construct();

如果在子类中未定义析构函数方法,则将自动调用父类的析构函数方法.

子类定义了自己的析构函数方法,它不会自动调用父类的析构函数方法,但可以手动调用: parent :: __ destruct()

覆盖覆盖

**什么是重写? **重写也称为“重写”,它是重新定义从父类继承的属性或方法. 只能覆盖受保护的或公共属性或方法.

**为什么要重写? **由于父类的属性可能对于子类而言不够具体或详细,因此子类需要有关相同功能部件的更准确或详细的信息.

**重写的基本要求: **访问控制权限,方法参数表.

**私有属性和私有方法的重写: **私有属性和方法都不能被覆盖,但是实际上,子类可以定义与父类同​​名的属性或方法. 它只是被视为自己的新属性或方法. 但是,该方法的参数必须一致.

**构造方法的重写问题: **构造方法不仅可以像其他普通方法一样进行重写,而且比普通方法更轻松: 重写时参数可能不一致.

**最后一堂课: **

**最终方法: **

设计模式:

**工厂模式: **专门用于“生产”各种其他类的对象的类

**单例模式: **一个只能从其实例化对象的类

经典的“放大”技术:

**抽象类,抽象方法: **

可以使用关键字abstract将一个类声明为抽象类. 抽象类是无法实例化的类,只能用作其他类的父类.

可以使用关键字abstract将方法声明为抽象方法;抽象方法只需要声明方法标题,而不用花括号声明方法主体.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-165092-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...