day10_面向对象第五天】的更多相关文章

1.包(掌握) 1.概念(掌握)       包就是文件夹,用于区分相同的类名 2.声明格式      package 包名1.包名2-.;      package:是个关键字3.带包的类的编译和运行      javac –d . 文件名.java 4.导包      import 报名1.包名2-;            如果我在一个类中需要用到不同包下的两个类,并且这两类名同名      方式1:通过关键字import导入一个包,另一个用类全名      方式2:两个都用类全名 5.pa…
 SOLID面向对象的五个设计原则对于开发人员非常重要,其身影在任何大中型软件项目中随处可见,建议必须掌握并灵活应用.此五原则分别为:     单一职责原则(Single Resposibility Principle)     开放封闭原则(Open Closed principle)     里氏替换原则(Liskov Substitution Principle)     接口分离原则(Interface Segregation Principle)     依赖倒置原则 (Depende…
单一职责原则 - 搜狗百科 https://baike.sogou.com/v51360965.htm 单一职责原则并不是一个孤立的面向对象设计原则,它是面向对象设计五个基本原则(SOLID)之一.这些原则是:单一职责原则.开闭原则.接口隔离原则.里氏替换原则和依赖倒置原则.这些原则被一起应用时可以使一个软件系统更易被维护和扩展.这些原则被典型的应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发等指导思想的重要组成部分.…
第一种: //第1种写法 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { return Circle.PI * this.r * this.r; } var c = new Circle(1.0); alert(c.area()); 第二种: //第2种写法 var Circle = function() { var obj = new Object(); o…
多态 面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是为了重用父类代码.两个类若存在IS-A的关系就可以使用继承.,同时继承也为实现多态做了铺垫.(我的关于继承的博客http://www.cnblogs.com/yangliguo/p/7481550.html) 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译…
一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,class) 2.issubclass是用来判断一个类是否为另一个类的子类 issubclass(Bar,Foo) class Foo: pass class Bar(Foo): pass obj = Foo() print(isinstance(obj, Foo)) # True print(issubclass(Bar, Foo)) # True isinst…
包装类 什么是包装类 在面向对象当中"一切皆对象".基本数据类型变量不是对象,比如 int a = 10; 当中就没有对象,所以就很矛盾.此时我们就可以对基本数据类型进行包装,把基本数据类型包装一个对象.把基本数据类型变的更强大,以面向对象的思想来去使用这些类型. 对基本数据类型包装的好处 (1)使用包装对象后,功能变的更加强大. 比如:以前使用double来去表示一个人的分数.此时这个人的分数考了0分,可以表示0.0.如果这个人没有来考试,那就代表这个没有分数,使用包装类型后, 即可…
super方法只是为了执行继承父级的init方法,若要详细,请参考别人的博客 class a(object): def __init__(self): print("aINIT") def a1(self): print("a") class b(a): def __init__(self): super(b, self).__init__() print("bINIT") def b1(self): print("b") b…
类中接口的应用 接口:一种成员属性全部为抽象的特殊抽象类,在程序中同为规范的作用   抽象类:1.类中至少有一个抽象方法.2.方法前需要加abstract 接口: 1.类中全部为抽象方法,抽象方法前不用加abstract.  2.接口抽象方法属性为public   3.成员属性必须为常量.   相同点:本身都不能被实例化,只能被继承或引用.继承或引用后,需要把所有抽象方法重载后方可使用. 继承(extends)只能是单一性,而接口可以使用implements进行引用.多个引用用逗号分开. 设已有…
这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!! 也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/ /* 1:形式参数和返回值的问题(理解) (1)形式参数: 类…
1.原型模式的重要性不仅仅体现在创建自定义类型方面,就连所有的原生的引用类型(Obejct.Array.String等等)都在构造函数的原型上定义方法和属性.如下代码可以证明: alert(typeof Array.prototype.sort); //输出:function alert(typeof String.prototype.substring); //输出:function 通过原生对象的原型,不仅可以取得所有默认方法的引用,而且可以定义新的方法.可以想修改自己定义对象的原型一样修改…
继承 ​ 在讲多态之前我们再复习下继承,下面是一个例子. ​ Circle 和 Rectangle 继承自 Shape,不同的图形,面积(area)计算方式不同. # shape.py class Shape: def area(self): return 0.0 class Circle(Shape): def __init__(self, r=0.0): self.r = r def area(self): return math.pi * self.r * self.r class Rec…
一.抽象概述 1.由来 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同.那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了. 我们把没有方法主体的方法称为抽象方法.Java语法规定,包含抽象方法的类就是抽象类. 2.定义 抽象方法:没有方法体的方法. 抽象类:包含抽象方法的类. 二.abstract 使用格式 1.抽象方法 使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体. 定义格式: 修饰符 abstrac…
isinstance与issubclass.反射.内置方法 一.isinstance与issubclass方法 1.isinstance是用来判断对象是否是某个类 isinstance(obj,class) 2.issubclass是用来判断一个类是否为另一个类的子类 issubclass(Bar,Foo) class Foo: pass class Bar(Foo): pass obj = Foo() print(isinstance(obj, Foo)) # True print(issub…
今日内容 上节作业 单例模式 class Foo: pass obj1 = Foo() # 实例,对象 obj2 = Foo() # 实例,对象 日志模块(logging) 程序的目录结构 内容回顾 & 作业 1.字符串格式化 msg = "我是%s,年龄%s" %('alex',19,) print(msg) msg = "我是%(n1)s,年龄%(n2)s" % {'n1': 'alex', 'n2': 123, } print(msg) # v1 =…
一. 类型约束: a) 约束函数可传入的参数类型二. 类的遍历 a) Foreach b) 可以将类当中的所有成员属性遍历出来三. 关于操作类与对象的一些函数: a) 判断函数 i. Function_exists() 判断一个函数是否存在 ii. Class_exists() 判断一个类是否存在b) 魔术常量: i. __FILE__ 获取当前文件的绝对路径 ii. __LINE__ 获取当前代码所在的行号 iii. __FUNCTIONS__ 获取当前函数的名称 iv. __METHOD__…
1 封装介绍 封装(encapsulation)就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作. 封装的理解和好处 隐藏实现细节 :提可以对数据进行验证,保证安全合理 如何体现封装 对类中的属性进行封装: 通过成员方法,包实现封装 2 封装的实现步骤 1)将属性进行私有化 2)提供一个公共的set方法,用于对属性判断并赋值 def setXxx(参数名 : 类型) : Unit = { //加入数据验证的业务逻辑…
return关键字:1.使用范围:使用在方法体中2.作用:① 结束方法 * ② 针对于返回值类型的方法,使用"return 数据"方法返回所要的数据.3.注意点:return关键字后面不可以声明执行语句. 方法的重载 1.方法的重载的概念定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可. * 总结:"两同一不同":同一个类.相同方法名 参数列表不同:参数个数不同,参数类型不同 2.构成重载的举例:举例一:Arrays类中重载的s…
五大原则: 1.单一职责原则SRP(Single Responsibility Principle):是指一个类的功能要单一,不能包罗万象.如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来. 2.开放封闭原则OCP(Open-Close Principle):一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的.比如:一个网络模块.原来只有服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设…
本科时常用的c语言是面向过程的语言,而Java是面向对象的语言 Java语言的11个关键术语 简单性.可移植性.面向对象.分布式.高性能.解释型.健壮性.多线程.安全性.动态性.体系结构中立 面向对象的基本特征 面向对象的三个基本特征:抽象(数据隐藏),继承,封装,多态, 封装 封装是指将对象相关的状态信息和行为捆绑为一个逻辑单元,将客观事物封装程抽象类. 继承 通过继承子类可以获得父类的属性和方法,,在子类中可以新增属性和方法,并且可以重写父类中方法的具体实现.在Java中一个子类只能继承一个…
2018-2019-2 20175317 实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 面向对象程序设计-1 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 参考http://www.cnblogs.com/rocedu/p/6736847.html 提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号. 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证.…
2018-2019-2 20175310 实验二<Java面向对象程序设计>实验报告 一.实验步骤及内容 (一).面向对象程序设计-1 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 参考http://www.cnblogs.com/rocedu/p/6736847.html 提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号. 1.在IDEA中安装JUnit插件,选择File->Setting打…
一.首先来了解一下Java面向对象的五个程序设计方式: 1.万物皆对象 Java以类为基本模块来将问题抽象化,在计算机中解决实际生活中的问题 2.程序为对象的集合,程序中的类通过互发消息来告知彼此要做的 消息即为对一个类的方法的调用 3.每个对象都有其他对象构成的存储 在新建的类中可以包含一个以存在的类的对象,即组和实现代码复用 4.每个对象都有其类型 对象时某个类的实例,而类就是对象的类型 5.某一特定类型的对象可以接收同样的消息 通过继承来实现代码复用时,子类也继承了父类的成员变量和方法则子…
20145302 <Java程序设计>第五周学习总结 教材学习内容总结 第八章 try catch JVM会先尝试执行try区块中的内容,若发生错误且与catch后面的类型相符,则执行catch区块中的代码. 若想在捕捉(catch)错误之后恢复程序正常执行流程,可以将try.catch区块放入while循环中. 由于JVM是尝试执行try区块,所以一旦发生错误被捕捉,那么这一次的try区块就相当于没有执行. 异常继承架构 编译程序认为调用System.in.read()时可能发生错误,故要求…
1.面向对象的五个基本原则 三个基本元素: 1. 封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象. 2. 继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它…
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更直观的来学习与理解IOC!也作抛砖引玉之用. (虽说故事中的需求有点小,但看客可在脑海中尽量把他放大,想象成一个很大的应用系统) 一.IOC雏形 1.程序V1.0 话说,多年以前UT公司提出一个需求,要提供一个系统,其中有个功能可以在新春佳节之际给公司员工发送一封邮件.邮件中给大家以新春祝福,并告知发放一定数…
SOLID面向对象的五个设计原则对于开发人员非常重要,其身影在任何大中型软件项目中随处可见,建议必须掌握并灵活应用.此五原则分别为:     单一职责原则(Single Resposibility Principle)     开放封闭原则(Open Closed principle)     里氏替换原则(Liskov Substitution Principle)     接口分离原则(Interface Segregation Principle)     依赖倒置原则 (Dependen…
反射,当时经常听他们说,自己也看过一些资料,也可能在设计模式中使用过,但是感觉对它没有一个较深入的了解,这次重新学习了一下,感觉还行吧! 一,先看一下反射的概念: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义. 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接.但是反射使用不当会成本很高! 看概念很晕的,继续往下看. 二,反射机制的作用:…
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更直观的来学习与理解IOC!也作抛砖引玉之用. (虽说故事中的需求有点小,但看客可在脑海中尽量把他放大,想象成一个很大的应用系统) 一.IOC雏形 1.程序V1.0 话说,多年以前UT公司提出一个需求,要提供一个系统,其中有个功能可以在新春佳节之际给公司员工发送一封邮件.邮件中给大家以新春祝福,并告知发放一定数…