面向对象

面向对象设计思想

匿名 (未验证) 提交于 2019-12-02 23:56:01
本来想去培训的,但是我没有钱,只好自己在网上找视频看。 前段时间,因为一些事,耽误了很长时间,现在再开始学。 想成为一名Java开发工程师,工资7k~9k就足够了。 一、对象用计算机语言对问题域中事物的描述,对象通过属性(attribute)和方法(method) 来分别对应事物所具有的静态属性和动态属性 a、类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所具有的静态和动态属性。 b、类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 考虑问题时,a、先考虑在这个问题中应该有哪些类和哪些对象       b、再考虑每一种类和对象,应该具有哪些属性和方法       c、最后考虑类和类之间具备什么样的关系(关联、聚合、继承……) 二、对象 a、对象是Java程序的核心,在Java程序中“万事万物皆对象” b、对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体 c、类是用来创建同一类型的对象的“模板”,在一个类中定义了该类所具有的成员变量和方法。 三、Java类的定义 1、引用   a、Java语言总除基本类型之外的变量类型都称之为引用类型   b、Java中的对象是通过引用对其操作的 分析语句:String s = new String("hello world"); String s;//声明了一个String类型的引用变量

第十一章、面向对象及类与对象

匿名 (未验证) 提交于 2019-12-02 23:55:01
Ŀ¼ 面向过程: 缺点:拓展性差 优点:复杂的问题流程化、进而简单化 面向对象对象编程 缺点:编程复杂度高于面向过程 优点:可拓展性高 类和对象 类(class): 相当于施工图纸(blueprint)(包括属性和函数) 对象(object):房子(已经建造好的)(包括属性和方法) 定义类 # 注意类中定义变量使用驼峰体 class OldboyStudent (): school = 'oldboy' def choose_course ( self ): print ( 'is choosing course' ) 生成对象 student1 = OldboyStudent () 获取属性的方法(通过 . 获取) print ( student1 . school ) #oldboy 获取类的函数 class Student : def choose_course ( self ): print ( 'is choosing course' ) --------------------------- OldboyStudent . choose_course ( 123 ) #类调用函数必须至少有一个参数,因为函数隐藏了一个self参数,当对象调用自己的方法才不需要self传参 查看类中的属性和方法 print ( Student . __dict__ ) 属性查找顺序

面向对象6大设计原则

匿名 (未验证) 提交于 2019-12-02 23:49:02
一、依赖倒置原则(DIP) 高层模块(稳定)不应该依赖于底层模块(变化),二者都应该依赖于抽象(稳定) 抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定) 条件:有稳定的类A,不稳定的类B、C,有抽象或者接口D(稳定) 让A依赖B/C则造成依赖倒置,因为是稳定依赖不稳定 正确应该让A、B、C依赖于接口D。稳定依赖稳定,不稳定依赖稳定。 依赖倒置原则其实就是面向接口编程 二、开闭原则(OCP) 类模块应该是可扩展的,但是不可修改 简单工厂模式违反了开闭原则,所以它不在23个设计模式里面。工厂方法和抽象工厂模式遵循了开闭原则。 开闭原则就是功能扩展对外开放,代码修改对内关闭 三、单一原则(SRP) 一个类应该仅有一个引起它变化的原因 变化的方向隐含着类的责任 一个类只负责一件事情,一个职责(对象的创建和使用分离,也是符合单一原则) 四、里式(Liskov)替换原则(LSP) 子类必须能够替换它们的基类(IS-A) 不要改变父类原有的功能,不然就是组合了而不是继承了 子类可以扩展父类的功能,但不要改变父类原有的功能 五、接口隔离原则(ISP) 设计接口功能尽量细粒度,最小功能单元 不应该强迫客户程序依赖它们不用的方法 接口应该小而完备 设计接口功能尽量细粒度,最小功能单元 六、迪米特原则(LoD) 又叫最少知识原则,就是说一个对象应当对其他对象尽可能少的了解

面向对象编写一个计算器

匿名 (未验证) 提交于 2019-12-02 22:56:40
首先分析计算器有加减乘除,取模,求余等计算方式,所以我们在创建了这个类的同时就应该想到后期肯定需要进行这方面的扩展,所以在设计的时候就应该尽量不修改原有代码的前提下进行功能的扩展,也就是降低对象之间的耦合度。 废话不多说,代码如下: namespace Program { //显示抽象类 public abstract class Print { public decimal Result { get; set; } public Print(decimal result) { this.Result = result; } public abstract void print(); } public class shuchu1 : Print { public shuchu1(decimal result) : base(result) { } public override void print() { Console.WriteLine("输出方式1输出" + Result); } } public class shuchu2 : Print { public shuchu2(decimal result) : base(result) { } public override void print() { Console.WriteLine("输出方式2输出" +

Python学习笔记:第三方模块2

匿名 (未验证) 提交于 2019-12-02 22:54:36
最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖子,廖雪峰的课程连接在这里: 廖雪峰 Python的相关介绍,以及它的历史故事和运行机制,可以参见这篇: python介绍 Python的安装可以参见这篇: Python安装 Python的运行模式以及输入输出可以参见这篇: Python IO Python的基础概念介绍,可以参见这篇: Python 基础 Python字符串和编码的介绍,可以参见这篇: Python字符串与编码 Python基本数据结构:list和tuple介绍,可以参见这篇: Python list和tuple Python控制语句介绍:ifelse,可以参见这篇: Python 条件判断 Python控制语句介绍:循环实现,可以参见这篇: Python循环语句 Python数据结构:dict和set介绍 Python数据结构dict和set Python函数相关: Python函数 Python高阶特性: Python高级特性 Python高阶函数: Python高阶函数 Python匿名函数: Python匿名函数 Python装饰器: Python装饰器 Python偏函数: Python偏函数 Python模块:

面向对象设计模式学习总结

邮差的信 提交于 2019-12-02 22:17:44
面向对象设计模式是软件工程领域的重要内容,在此对我的学习情况进行一个总结。 首先是设计模式的七大原则: 01 单一职责原则(SRP) 02 接口隔离原则(ISP) 03 依赖倒置原则(DIP) 04 里氏替换原则(LSP) 05 开闭原则(OCP) 06 最少知识原则(LKP) 07 合成复用原则(CRP) 然后是经典的23种设计模式,我用Java进行了简单的实现,代码放在 我的Github 上了,有需要的朋友可以参考。 软件工程是是理论与实践相结合的,设计模式也一样,在学习完这些思想和理论之后,还需要进行实际的操作。 我想可以通过做关于设计模式的面试题来加强对设计模式的理解并提高熟练度,这样比重复描述一遍每一个设计模式的概念,效果应该要好一些。 在对某项知识有了基本的认识之后,以“解决实际问题”为目标,有针对性的对某些知识点深入的研究,这种“问题驱动”,是比较高效的学习方法, 我会在今后设计模式的学习中,尝试使用这种学习方法,希望能够达到我预期的效果吧。 来源: https://www.cnblogs.com/asenyang/p/11764475.html

java面向对象MyEclipse 10开发

匿名 (未验证) 提交于 2019-12-02 21:53:52
首先面向对象编程分为封装、继承、和多态 封装就是将代码隐藏不能随便访问的一种方式它相当于就是将代码装进一个房子里只能达到条件才能被访问或者修改 一般在Java中我们将类中的属性进行封装这样更有利于代码的安全性,Java中的封装快捷键为 shift+alt+s+r然后点击Select All为全部封装 也可以在左边选择那些属性进行封装 点击OK即可 private String name ; //取值调用这个方法 public String getName () { return name ; } //赋值调用这个方法 public void setName ( String name ) { this . name = name ; } 然后是继承 继承主要的作用为减少代码的冗余提高代码的复用性,比如现在有两个类分别都有相同的字段然而这样的话就是有重复的代码这样是非常不好的 会影响你的代码运行速度 那怎么办呢? 这就用到了继承 继承是将一个类里面的东西变成公用的继承的类都可以访问 我们把有公有公有代码的那个类叫父类继承的类叫子类 打个比方动物类 动物有名字那么应该还有个行为是介绍自己的吧那么就可以这样定义 public class Animal { private String name; public String getName() { return name; } /

java中的包和类的讲解

匿名 (未验证) 提交于 2019-12-02 21:45:52
1、java中的包装类 为什么需要包装类? (1)因为java是面向对象的编程语言,而基本数据类型非面向对象 (2)Java中的集合要求存储引用数据类型 8大基本数据类型 对应8个包装类 java中的八大基本数据类型对应八个包 1)object 2)boolean ②byte ③short ⑤float ⑥double 文章来源: https://blog.csdn.net/wyqwilliam/article/details/92675316

面向对象设计模式原则05 开闭原则(OCP)

荒凉一梦 提交于 2019-12-02 19:41:23
开闭原则(Open Closed Principle,OCP)的定义是:软件实体应当对(提供者的)扩展开放,对(使用者)的修改关闭。 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 开闭原则是面向对象程序设计的终极目标,设计模式的其他各项原则和其他各种设计模式,都是对开闭原则的体现。 可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。 来源: https://www.cnblogs.com/asenyang/p/11761131.html

面向对象设计模式原则01 单一职责原则(SRP)

廉价感情. 提交于 2019-12-02 14:33:31
单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,这里的职责是指类 变化的原因。 单一职责原则规定一个类应该有且仅有一个引起它 变化的原因 ,否则类应该被拆分。 以上是单一职责的基本概念,可以看到两句话中两次提到了"变化的原因"。 变化是软件生命周期中持续存在的过程,也可以说变化促进了软件的发展,如果软件不再发生变化,那么这个软件就停止了发展。 从这个角度来说,变化是积极有益的。 但是变化也消极有害的一面,这主要体现在变化的过程中对软件中一些已有的、无需变化的部分造成干扰,从而对软件产生结构性损害,造成软件无法正常工作。 如果软件的所有部分都发生了变化,那使用设计模式是难以支撑的,这时需要考虑的不是“重构”,而是“重写”。 如果软件的所有部分都不发生变化,那使用设计模式是没有意义的,这时需要考虑的是“效率”,而不是“扩展”。 麻烦的是软件的某些部分变化而某些部分没有变化,面向对象设计模式就是为了解决此项问题而提出的。 回到本文所讲的主题——单一职责原则,这项原则强调的是“业务逻辑隔离”。 按照面向对象的思想,把每种业务逻辑当作一个“人”的话,那么这些“人”就是有传染病的“病人”。而我们的软件就是一所“传染病医院”。单一职责,就相当于对不同的传染病类型的病人,隔离治疗——划分在不同的病区和病房。而防止病人之间的相互传染。