无标题文档

面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,如手机就是一个对象。

面向对象编程(OOP:object-orientedprogramming)

面向对象的基本特性:抽象、封装、继承、多态。

面向对象技术简介一个类占有一个独立的空间,类中的属性叫做类变量,类中的函数,叫做类的方法。

类(Class):也可以成为类对象。类对象中包含了一批实例对象共有的属性和方法。

类变量:定义在类中且在函数体之外的变量。类变量在所有的实例变量中是共享的,类变量修改了,所有实例对象读取到的值都会修改。

实例变量:定义在类的实例方法中的变量,只作为当前实例的属性。

方法:类中定义的函数。包含实例方法,类方法,静态方法。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。其实只是在派生类中添加了同名方法,以至于查询方法时不会再向基类查询

继承:即一个派生类(derivedclass)继承基类(baseclass)的属性和方法。继承也允许把一个派生类的对象作为一个基类对象对待。(就是说派生类还可以再派生孙子类)

实例化:创建一个类的实例,类的具体对象。在实例对象开辟一个空间,并为实例对象添加对类的引用。并没有复制类中的属性和方法到实例对象中。

实例对象:通过类定义的数据结构实例。

python中一切皆为对象,类型的本质就是类。

类提供了一种组合数据和功能的方法。创建一个新类意味着创建一个新的对象类型,从而允许创建一个该类型的新实例。每个类的实例可以拥有保存自己状态的属性。一个类的实例也可以有改变自己状态的(定义在类中的)方法。

类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

class定义格式:

classClassName:'类的帮助信息'#类文档字符串class_suite#类体

类的帮助信息可以通过ClassName.__doc__查看。

class_suite由类成员,方法,数据属性组成。

class派生类名(基类名):...

注:在Python中建议函数名是以小写字母开头,类名是以大写字母开头;。

object是所有类的超类(基类)

>>>help(list)#原来使用的list()函数就是一个类Helponclasslistinmodulebuiltins:classlist(object)|list(iterable=(),/)||Built-inmutablesequence.|......|__add__(self,value,/)|Returnself+value.|__init__(self,/,*args,**kwargs)|Initializeself.Seehelp(type(self))foraccuratesignature.|append(self,object,/)|Appendobjecttotheendofthelist.classPerson:#定义一个人类role='person'#人的角色属性都是人def__init__(self,name):#self:在实例化时自动将对象/实例本身传给__init__的第一个参数self.name=name#每一个角色都有自己的昵称;defwalk(self):#人都可以走路,也就是有一个走路方法print("personiswalking...")print(Person.role)#查看人的role属性print(Person.walk)#引用人的走路方法,注意,这里不是在调用p1=Person("张三")#实例化的过程就是类——>对象的过程p1.walk()__init__,这个方法被称为构造方法,里面的name是实例变量。构造方法用于构造该类的对象,Python通过调用构造方法返回该类的对象。python提供一个功能就是:若开发者没有定义构造函数,python会自动提供一个只包含self参数默认的构造方法。

class类名(类型名):def__init__(self,参数1,参数2):self.对象的属性1=参数1self.对象的属性2=参数2def方法名(self):passdef方法名2(self):pass对象名=类名(1,2)#对象就是实例,代表一个具体的东西#类名():类名+括号就是实例化一个类,相当于调用了__init__方法#括号里传参数,参数不需要传self,其他与init中的形参一一对应#结果返回一个对象对象名.对象的属性1#查看对象的属性,直接用对象名.属性名即可对象名.方法名()#调用类中的方法,直接用对象名.方法名()即可

classStudent():def__init__(self,name,sex,height,weight):self.name=nameself.sex=sexself.height=heightself.weight=weightdefstand(self):print("%s起来唱首歌!"%self.name)stu=Student("天亮","男","166","99")print(stu.name)print(stu.sex)stu.stand()在Python中,创建类的实例只要调用一个类,仿佛它是函数就行了。不像C++或Java有一个明确的new操作符。

classMyClass:"""Asimpleexampleclass"""i=12345deff(self):return'helloworld'#MyClass.i和MyClass.f就是有效的属性引用,将分别返回一个整数和一个函数对象。x=MyClass()#类的实例化使用函数表示法;创建类的新实例并将此对象分配给局部变量x。x.f()#x.f是一个方法对象,方法在绑定后立即被调用:a=MyClass#a任然代表MyClassprint(a)#type(x)#实例的类型就是类名MyClassxf=x.f#x.f是一个方法对象,它可以被保存起来以后再调用foriinrange(10):print(xf())与前面所说的在python语言中函数没有重载一样,构造方法也没有重载的概念,一个class中只能有一个用于构造对象的__init__函数,那么python是如何现在向其他语言中的构造重载呢。

在_init_()方法中使用*args和**kwags根据参数数量来进行判断如何执行构造函数,实现其他语言中构造函数的重载

importtimeclassDate:def__init__(self,*args):iflen(args)==0:t=time.localtime()args=(t.tm_year,t.tm_mon,t.tm_mday)self.year,self.month,self.day=args>>>a=Date(2012,12,31)#明确指定日期>>>b=Date()#信息模糊,指示不明Python中只有两种对象:为了明确起见,让我们称它们为类型和非类型。非类型可以称为实例,但该术语也可以指类型,因为类型总是另一种类型的实例。类型也可以被称为类,我有时也称它们为类。

1)、object和type是python中的两个源对象

2)、查看object的类型。看到object是type的实例,我们另外也用.__class__来核实它和type()的输出是一样的。

3)、object是type的超类。type的类型是它自己

4)、python中类型本身也是对象,称为类型对象typeobjects。

更多内置对象,python可不止只有两个源对象。通过这两个源对象可以繁育出一堆对象:

THE END
1.消息机制第一阶段: 消息发送 第二阶段: 动态方法解析 第三阶段: 消息转发 将消息转发给别人去实现; 如果经历过以上3个阶段objc_msgSend 找不到合适的方法进行调用,会报错unrecognized selector sent to instance; 注:元类对象是一种特殊的类对象; 二、objc_msgSend底层实现: https://www.jianshu.com/p/099ce2e51305
2.面向对象的基本概念面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口、消息、组件、模式和复用等。 1.对象 对象是由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个封装,是构成系统的基本单位,采用计算机语言描述,对象是由一组属性和对这组属性进行操作的一组服务构成。 https://blog.csdn.net/faihung/article/details/76599778
3.java中kafka发消息返回结果kafka发消息写法一:发送的消息对象是字符串 1 创建项目 2 项目结构 3 application.yml 配置文件 4 生产者 KafkaProducerComponent 5 消费者 KafkaConsumerComponent 6 控制器(GET请求发送消息) 7 启动类 8 测试效果 写法二:发送复杂消息对象 1 创建项目 2 项目结构 https://blog.51cto.com/u_16213626/9284004
4.对象存储POST上传对象存储API文档用户除了可以用PUT直接上传对象外,还可以使用POST上传对象。 单次上传对象大小范围是[0, 5GB],如果需要上传超过5GB的大文件,需要通过多段操作来分段上传。 与PUT上传的区别 PUT上传中参数通过请求头域传递;POST上传则作为消息体中的表单域传递。 PUT上传需在URL中指定对象名;POST上传提交的URL为桶域名,无需指定对象https://ecloud.10086.cn/op-help-center/doc/article/64198
5.Java语言程序设计试卷6套A、可提供多种实现方法 B、清楚边界隐藏内部细节 C、分布性 D、有利于复杂对象管理 E、安全和可移植 F、消息驱动 3、Java语言的多态性可以体现在?(正确答案:ABCDF) A、函数的重载 B、不同数据类型之间的合理转换 C、抽象函数和抽象类 D、多个构造函数 E、多个父类 F、派生出不同子类 https://developer.aliyun.com/article/1431557
6.教你3步画好时序图,轻松掌握产品经理都在学的流程分析利器首先,选定要展开分析的用例或目标;接着,分析都有哪些对象、角色参与了实现过程;然后,将它们在实现目标过程中,彼此之间的交互动作,按照时间轴的顺序列出来。 再简单点,就是定目标、找对象、列消息三步走。 1、定目标 画时序图,与活动图一样,要指定某个用例,或目标展开。这些动态视图,是用来描述在静态视图(如用https://www.niaogebiji.com/article-78077-1.html
7.消息分类标准通知消息管理规则推送服务旅游出行类App 便捷生活类App 运动健康类App 音乐类App 游戏类App 摄影类App 版本更新说明 使用入门 开发准备 配置AppGallery Connect 集成HMS实时运动Bundle对象键值 基础能力支持的国家/地区 扩展能力支持的国家/地区 设备接入 说明 运动设备接入开发指南 运动设备接入 有氧健身器材接入 https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/message-classification-0000001149358835
8.面向对象数据模型中的基本概念,如对象消息类继承重载多态消息是对象之间相互请求或相互协作的唯一途径,一个对象必须通过向其他对象发送消息的形式使得其他对象提供各自所能实现的功能。在面向对象的数据模型中,消是对象之间唯一的通信形式,也就是外界能够引用对象操作及获取对象状态的唯一方式,消息分为公有和私有两类,属于同一个对象的消息,其中有些是可由其他对象https://zhidao.baidu.com/question/402910824616679605.html