接口

day_25面向对象

╄→尐↘猪︶ㄣ 提交于 2020-03-22 07:35:21
继承的另一种使用方式 最常见的是直接继承一个已经存在的类 当你想要创建一个新的类,发现这个类中的一些在某一个类中已经存在了 那就没必要从头开始写,可以直接继承已有的类,然后作补充 class MyList(list): def __init__(self,element_cls): # 当你覆盖了init方法时 # 不要忘记调用super().init函数让父类完成原有的初始化操作 super().__init__() self.element_cls = element_cls def append(self, object): # if isinstance(object,str) if object.__class__ == self.element_cls: super().append(object) else: print("只能存储%s类型!" % self.element_cls.__name__) 2.python支持多继承,一个类可以同时继承多个父类 好处是更加灵活 问题是属性的查找顺序该怎么确定 #多继承时如果如果多个父类中出现了同名的属性/函数 #就不能用眼睛去判断查找顺序了,需要使用 mro列表来查看真正的继承顺序 #super在访问父类属性的时候,是按照mro列表一层层往上找的 # 多继承虽然更灵活,但是问题也是成正比的.所以尽量不要使用多继承 组合

Java第五次作业

倾然丶 夕夏残阳落幕 提交于 2020-03-22 06:58:32
1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结。 参考资料: XMind 2.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路并画出类图。 定义接口A,在接口A中得到汽车的编号,名称,租金再定义两个抽象方法,zaiKe和zaiHuo 定义抽象类,Qiche继承接口A 定义子类,Keche,Huoche,Pika,覆写Qiche中的抽象方法 定义测试类进行调用输出 工具:PowerDesigner 参考教程:UML 简介 3.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果 interface Animal{ void breathe(); void run(); void eat(); } class Dog implements Animal{ public void breathe(){ System.out.println("I'm breathing"); } void eat(){ System.out.println("I'm eating"); } } public class Test{

继承和实现接口的区别

扶醉桌前 提交于 2020-03-22 02:48:27
1,java类可以一次继承多个接口,用implements 接口1,接口2 2,如果是接口继承接口的话也可以用extends,接口是多继承的,java类才是单继承 3,接口继承接口可以不实现父接口中的方法,可以声明自己的新方法, 4,类实现接口时,一定要实现接口中声明的方法,如果接口中没有定义抽象方法则不需要,但是要注意,类实现了一个接口A,如果B是A的父接口,且B中有抽象方法,则该类必须实现A和B中的所有抽象方法 5,抽象方法只能定义在抽象类中,抽象类实现接口,可以不实现接口中的抽象方法 继承接口是说的接口来继承接口,是接口与接口间的 来源: https://www.cnblogs.com/wnlja/p/3929804.html

python接口自动化测试-requests.get()

回眸只為那壹抹淺笑 提交于 2020-03-21 20:31:18
http请求方式:get、post、delete、put post请求的数据是放在WebForm里面的,以表单形式提交 不同接口类型的差异: 参数提交方式 请求数据大小 安全性 接口测试用例设计: 功能,功能是否正常;功能是否按照接口文档实现 逻辑业务,是否依赖业务 异常,参数异常(关键字参数,参数为空,多、少参数,错误参数);数据异常(关键字数据,数据为空,长度不一致,错误数据) 安全,cookie;header;唯一识别码 urllib和urllib2是相互独立的模块(原生) requests库使用了urllib3(多次请求重复使用一个socket) import requests URL_IP = 'http://httpbin.org/ip' URL_GET = 'http://httpbin.org/get' def use_simple_requests(): response = requests.get(URL_IP) print('>>>>>>Response Headers:') print(response.headers) print('>>>>>>Response Body:') print(response.text) def use_simple_requests2(): params = {'param1':'hello','param2':

不是我吹,RabbitMQ 是真牛逼!

南楼画角 提交于 2020-03-21 19:24:20
3 月,跳不动了?>>> 今天来介绍下 RabbitMQ 在业务中在多强,文末再免费送 10 本重量级的书,不要错过!!! RabbitMQ作为一款能实现高性能存储分发消息的分布式中间件,具有异步通信、服务解耦、接口限流、消息分发和业务延迟处理等功能,在实际生产环境中具有很广泛的应用,其特性可以概括为如图1所示。 图1 RabbitMQ的作用 正是由于RabbitMQ拥有如此多的特性,才使得其在实际应用系统中具有一席之地,本节主要介绍一下RabbitMQ的典型应用场景。 1.异步通信和服务解耦 以“用户注册”为实际场景,传统的企业级应用处理用户注册的流程,首先是用户在界面上输入用户名、邮箱或手机号等信息,确认无误后,单击“注册”按钮提交相关信息。 前端会将这个信息提交到后端相关接口进行处理,后端在接收到这些信息后,会先对这些信息进行最基本的校验,校验成功后会将信息写入数据库相关数据表中,而为了用户注册的安全性,后端会调用邮件服务器提供的接口发送一封邮件验证用户的合法性,或者调用短信服务的发送短信验证码接口给用户进行验证,最后才将响应信息返回给前端用户,并提示“注册成功”,整个流程如图2所示。 图2 传统的企业级应用系统用户注册流程 从图2的流程可以看出,用户从单击“注册”按钮,提交相关信息之后便需要经历“漫长”的等待时间,整体的等待时间约等于“写入数据库”+“邮箱验证”+“短信确认

JDK 动态代理

萝らか妹 提交于 2020-03-21 16:42:35
3 月,跳不动了?>>> JDK 代理 java中的代理是指某个对象的一个替代者,该替代者暂时担任了被代理对象的职责,代理对象包含了原始对象的所有方法,而且还有可能会附加一些额外的方法。代理对象就是在不破坏原始对象的前提下发挥和原始对象相同甚至更多的功能,Java中的代理分为静态代理和动态代理两种。 静态代理: 在为某个对象生成代理对象之前,就已经知道代理对象要实现的功能或者发挥的作用,那么只需要重新写一个代理类,该类和原始类实现了相同的接口,然后在代理类的方法中加入某些附加的处理操作,这种代理类对象的行为是确定的,所以称为静态代理。 public interface Eatable{ void eat(); } class Person implements Eatable{ public void eat(){ System.out.println("吃饭"); } } class ProxyPerson implements Eatable{ private Person person; public ProxyPerson(Person person){ this.person = person; } public void eat(){ System.out.println("吃饭之前先要洗手!"); person.eat(); } } 上述代码中

java中的Serializable接口

江枫思渺然 提交于 2020-03-21 15:43:12
实现java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。   序列化类的所有子类本身都是可序列化的。这个序列化接口没有任何方法和域,仅用于标识序列化的语意。允许非序列化类的子类型序列化,子类型可以假定负责保存和恢复父类型的公有的、保护的和(如果可访问)包的域的状态。只要该类(扩展)有一个无参构造子,可初始化它的状态,那么子类型就可承担上述职责。在这种情况下申明一个可序列化的类是一个错误。此错误将在运行时被检测。就是可以把对象存到字节流,然后可以恢复!   例如:Integer实现了Serializable,所以可以把一个Integer的对象用IO写到文件里,之后再可以从文件里读出,如你开始写入的时候那个对象的intValue() 是5的话,那读出来之后也是5。这一点体现了用序化类的作用,即用来传送类的对象。    所谓的Serializable,就是java提供的通用数据保存和读取的接口。 至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了。 这样子,任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。只要设计一个保存一个读取功能就能解决上面说得所有问题。 Object

Java中23种设计模式详解

♀尐吖头ヾ 提交于 2020-03-21 12:28:52
资源来源: http://hb.qq.com/a/20110818/000043.htm 【IT168 技术】通常,一个设计模式描述了一个被证实可行的方案。这些方案非常普遍,是具有完整定义的最常用的模式。一般模式有4个基本要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。   常见的Java设计模式有以下23种:    1、抽象工厂模式(Abstract Factory):   提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。    2、适配器模式(Adapter):   将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口或类不兼容而不能一起工作的类可以一起工作。    3、桥梁模式(Bridge):   将抽象部分与它的实现部分分离,使它们都可以独立地变化。    4、建造模式(Builder):   将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示。    5、责任链模式(Chain of Responsibility):   为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。    6、命令模式(Command):   将一个请求封装为一个对象

C#抽象类与接口的比较

梦想的初衷 提交于 2020-03-21 12:20:54
*/ /*--> */ 相同点 ●都不能被直接实例化,都可以通过继承实现其抽象方法。 ●都是面向抽象编程的技术基础,实现了诸多的设计模式。 不同点 ●接口支持多继承;抽象类不能实现多继承。 ●接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。 ●接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。 ●接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。 ●接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。 ●接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。 通过相同与不同的比较,我们只能说接口和抽象类,各有所长,但无优略。在实际的编程实践中,我们要视具体情况来酌情量才,但是以下的经验和积累,或许能给大家一些启示,除了我的一些积累之外,很多都来源于经典,我相信经得起考验。所以在规则与场合中,我们学习这些经典,最重要的是学以致用,当然我将以一家之言博大家之笑,看官请继续。 规则与场合 1.请记住,面向对象思想的一个最重要的原则就是:面向接口编程。 软件开发网 www.mscto.com 2.借助接口和抽象类,23个设计模式中的很多思想被巧妙的实现了,我认为其精髓简单说来就是:面向抽象编程。 3.抽象类应主要用于关系密切的对象

第六章 类文件结构

萝らか妹 提交于 2020-03-21 10:26:33
这章涉及记忆性的东西太多。 下面简要讲一下一些主要的内容,关于属性表的内容则省略,虽然貌似也挺重要,但是这方面的知识点太多。 如图所示Class类文件的结构按照从上往下排序依次也对应着class二进制文件里的顺序。 下面则是书上内容的一些摘要: 6.1 Class文件 Class文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有添加任何分隔符若遇到需要占用8字节以上空间的数据时,则会按照高位在前的方式分割成若干组8位字节进行存储。 Class文件格式采用一种类似于C语言结构体的伪结构来存储,这种结构只有两种数据类型:无符号数和表。 那么无符号数和表又是什么呢? 无符号数属于基本的数据类型,以u1,u2,u4,u8来分别代表1个字节,2个字节,4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值、或者按照UTF-8编码构成字符串值 表是由多个无符号数或其他表作为数据项构成的复合数据类型,所有表都习惯性地以“_info”结尾,整个Class文件本质上就是一张表。 6.2 魔数(magic Number) Class文件的头4个字节,作用:确定这个文件是否为一个能被虚拟机接受的Class文件。值为:0xCAFEBABE(咖啡宝宝) 这个好理解,比如EXE文件打开前面都也会有一个标记,jpg这些格式也是存在这种标记的。