面向对象方法

PHP之面向对象小结

左心房为你撑大大i 提交于 2020-02-24 00:55:19
PHP 中创建对象 类创建后,我们可以使用 new 运算符来实例化该类的对象: $runoob = new Site; PHP 构造函数 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。 function __construct( $par1, $par2 ) { $this->url = $par1; $this->title = $par2; } 析构函数 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。 PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,其语法格式如下: void __destruct ( void ) 继承 PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承,格式如下: class Child extends Parent { // 代码部分 } 方法重写 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 访问控制 PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。 public(公有)

php面向对象

瘦欲@ 提交于 2020-02-24 00:32:17
面向对象类权限修饰符: public :类的内部、外部、子类中使用 protected:本类和子类中使用 private:只能在本类中使用 面向对象的封装、继承、多态 继承: ①子类只能继承父类的非私有属性。 ②子类继承父类后,相当于将父类的属性和方法copy到子类,可以直接使用$this调用该属性; ③PHP只能单继承,不支持一个类继承多个类。但是一个类可以进行多层继承(即A继承于B,而C又继承于A,C通过A间接继承了B) 封装: 类实现封装是为了不让外面的类随意的修改一个类的成员变量,所以在定义一个类的成员的时候,我们使用private关键字设置这个成员的访问权限 只能被这个类的其他成员方法调用,而不能被其他类中的方法调用,即通过本类中提供的方法来访问本类中的私有属性。 ①所以在该类中我们会提供一个访问私有属性的方法 ②然后我们一般会定义两个方法来实现对一个变量的操作,即:get()与set()方法。 多态: 一个类,被多个子类继承,如果这个类的某个方法,在多个子类中,表现出不同的功能,我们称这种行为为多态。(同一个类的不同子类表现出不同的形态)   实现:     子类继承父类 ->子类重写父类方法 ->父类引用指向子类对象 来源: https://www.cnblogs.com/bloghuang/p/10759350.html

java面向对象入门(1)-入门介绍

瘦欲@ 提交于 2020-02-24 00:00:55
在本 Java OOPs 概念教程中,我们将学习四种主要的面向对象原则 -- 抽象、封装、继承和多态性。它们也被称为面向对象编程范式的四大支柱。 _ 抽象 _是在不考虑无关细节的情况下公开实体基本细节的过程,以降低用户的复杂性。 _ 封装 _是将数据和对数据的操作捆绑到一个实体中的过程。 _ 继承 _用于从现有类型派生新类型,从而建立父子关系。 _ 多态 _使一个实体在不同的上下文中具有不同的含义。 1.抽象 将 OOP中的抽象 与实时示例相关联时,它很容易理解。例如,当您开车时,您不必担心汽车的内部实际工作情况。您所关心的是通过方向盘,制动踏板,油门踏板等接口与汽车交互。在这里,您对汽车的了解是抽象的。 在计算机科学中,抽象是一个过程,通过该过程定义数据和程序的形式类似于其含义( 语义 ),同时隐藏实现细节。 用更简单的术语来说,抽象是 隐藏与上下文无关 或仅显示相关信息的信息,并通过将其与现实世界中的相似内容进行比较来简化信息。 通常,可以通过两种方式查看抽象: 1.1数据抽象 数据抽象是从多个较小的数据类型中创建复杂的数据类型的方法,该类型更接近于现实生活中的实体。例如, Employee 类可以是具有各种小型关联的复杂对象。 public class Employee { private Department department; private Address

java面向对象入门(3)-java构造方法

烂漫一生 提交于 2020-02-24 00:00:09
Java构造函数 是特殊的方法(没有返回类型),使您可以在应用程序内部的其他类使用对象之前完全初始化对象状态。Java中的构造方法是使用 new 关键字调用的。 下面让我们更深入地了解构造函数。 1.什么是java构造函数 构造函数是一种特殊的方法,类似于(没有确切的方法)构造,它可以帮助程序员在对象可被应用程序中的其他对象使用之前编写对象初始化代码。 每当应用程序需要任何类的新实例时,JVM就会在堆内部分配一个内存区域。然后,JVM执行调用的构造函数(类可以具有多个构造函数)并初始化对象状态。在构造函数内部,您可以访问所有对象属性,并将它们分配给它们的默认值或任何所需的值。 2.构造函数类型 2.1.默认构造函数(无参数构造函数) 如果程序员在类定义中不提供任何构造函数,则JVM在运行时为该类提供默认构造函数。 程序员还可以覆盖类中的默认构造函数。让我们看一下语法。 public class Employee { public Employee() { } } 在默认构造函数中,构造函数的名称必须与类名称匹配,并且不应具有任何参数。 2.2通过构造函数重载进行参数化构造函数 如上所述,一个类中可以有多个构造函数。这可以通过重载构造函数来实现。在 构造函数重载中 ,您可以根据要求传递参数列表,即可以初始化类的数量。 public class Employee { private

面向对象之接口与抽象性

三世轮回 提交于 2020-02-23 13:58:12
一、接口(interface)   1、 定义 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要...则必须能...”的思想。继承是一个"是不是"的关系,而接口实现则是 "能不能"的关系 接口的本质是契约,标准,规范,就像我们的法律一样。制定好后大家都要遵守 一个类可以实现多个接口,可以得到多重继承的效果   2、接口的使用说明(JDK7及以前) ① Java中,接口(interface) 是与类(class)并列的结构 ② 如何定义一个接口:使用interface关键字 ③ 接口中只能定义全局常量和抽象方法 全局常量:public static final的,但是书写时,可以省略不写         抽象方法:public abstract修饰         ④ 接口中不能定义构造器,意味着接口不可以实例化。         ⑤ Java开发中,接口通过让类去实现(implements)的方式来使用 类实现接口以后,就获取了接口中声明的结构:常量、抽象方法 如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化         如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类          ⑥ Java类可以实现多个接口 弥补了Java单继承性的局限性 格式:class AA extends BB implements CC,DD,EE

初识面向对象(猫咪项目)

蹲街弑〆低调 提交于 2020-02-22 03:56:41
学习总结: 1、方法中定义的局部变量无初始值(未初始化),不能输出;当变量作为属性时,系统自动赋于初始值。 int ——>0 double——>0.0 String——>Null 2、通过类实例化对象,通过对象分别调用相应的属性和方法 3、方法重载:在同一个类中,相同方法名不同参数列表的方法。 4、单一职责原则:一个类中有且只有一个引起功能变化的原因。一个类中所承担的功能越多,交融耦合性就越高,被复用性越低。在程序设计中,尽量把不同的职责(原因)封装在不同的类中。 5、实例化对象的过程可以分为两步: (1)声明对象 Cat one—— 栈 (2)实例化对象 new Cat()——堆 将堆空间的内存地址存到了栈中(声明对象指向实例化的具体空间) new的出现相当于在堆中开辟了一段内存空间 注:Cat one=new Cat(); Cat two=new Cat(); 即使内部信息一样,但是他两在堆中的不同内存地址中存放,改变one的值,不影响two的值。 Cat two=one;将one在栈中的内存地址给了two,任何一个的变化,都会引起双方的变化。 package com . animals ; public class Cat { //成员属性:昵称、年龄、体重、品种 String name ; int month ; double weight ; String species

Python面向对象

那年仲夏 提交于 2020-02-21 05:14:14
文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员: 类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 实例变量: 定义在方法中的变量,只作用于当前实例的类。 继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化: 创建一个类的实例,类的具体对象。 方法: 类中定义的函数。 对象: 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 创建类 使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,如下实例: class

面向对象(OOP)和NEW的实现原理

别等时光非礼了梦想. 提交于 2020-02-20 17:31:12
面向对象编程(OOP): OOP-Object Oriented Programring:面向对象程序设计 POP-Procedure Oriented:面向过程程序设计 面向过程:C语言 面向对象:JS JAVA PHP C# (.net)Python Ruby go … 什么是面向对象,要正确区分对象,类和实例: 对象: 万物皆对象 类:对象的细分 实例:类中具体的事物 JS也是面向对象编程:类、实例 1 => Number ‘A’=> Srting true => Boolean -都属于大类Object null => Null undefined => Undefined [] => Array /^$/ => RegExp function(){} => Function {} => Object 每一个实例可以调用所属类(整条链)中的属性和方法。 所以学习JS时,按照面向对象的思维去考虑事情。 在开发中,遇到实例,要可以研究它的子类,父类,基类。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA

Java面向对象大致梳理

别说谁变了你拦得住时间么 提交于 2020-02-20 13:01:03
面向对象思想、 面向对象思想概述: Java设计语言面向对象: Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。 类和对象: 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该 类事物 属性:就是该事物的状态信息。 行为:就是该事物能够做什么。 对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性 和行为。 类与对象的关系 : 类是对一类事物的描述,是抽象的。 对象是一类事物的实例,是具体的。 类是对象的模板,对象是类的实体。 面向对象之封装: 概述: 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

面向对象1

≯℡__Kan透↙ 提交于 2020-02-18 23:43:07
面向对象 1、面向过程编程 核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化、进而简单化 缺点:可扩展性差 2、面向对象 核心"对象"二字,对象指的是特征与技能的结合体, 基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种 上帝式的思维方式 优点:可扩展性强 缺点:编程的复杂度高于面向过程 重点:面向对象的核心体现是将数据和处理数据的程序封装到对象中 名称空间操作 所有能产生名称空间对应的对象(存放地址的变量)有__dict__值 __dict__指向的就是附属对象的名称空间 import re print(re.__dict__) re.__dict__['name'] = 're模块' print(re.__dict__['name']) re.__dict__['action'] = lambda x: x print(re.__dict__['action'](1000)) def fn(): pass print(fn.__dict__) fn.name = 'fn函数' print(fn.name) def test(): print("可以成为fn功能的函数") fn.action = test fn.action() 类与对象的概念 类