摘取代码中变化的行为,形成接口 在设计基类的时候,如果该类某个成员方法在子类中的实现变化差别比较大(一部分子类实现该方法是相同的),作为基类有两个问题:一是该方法不再通用:二是子类如果重写该方法,存在代码重复的情况.如果只是把该方法设计成抽象方法,只能解决第一个问题,无法解决第二个问题.对于这类问题,最好的做法是把这种方法设计为接口. 多用组合,少用继承 针对第一条原则,把这种接口作为抽象类的属性,可以有效减少代码的冗余. 针对接口编程,不依赖于具体实现 如果对一个类型有依赖,应该尽量依赖接口,…
PHP面向对象程序设计的61条黄金法则   你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚.但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 . ----- Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部. (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者. (3)尽量减少类的协议中的消息. (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝).相等性判断.正确输出内容.从ASCII描述解析等等]. (5)不要把实现细节…
<2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 25/10 1/0 6 编写九九乘法表 2 200/40 2/0 8 快捷键的学习,导入程序,练习读懂简单的 程序,明确java的完整框架 3   300/50           0/0   6  尝试编写从身份证号中输出年月日,StudentFile. 4    300/60           2/0       …
[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.NET中快带序列化和反序列化.最后介绍在使用.NET序列化JSON过程中的注意事项. 读前必备: A.泛型       [.net 面向对象编程基础]  (18) 泛型 B.LINQ使用  [.net 面向对象编程基础] (20) LINQ使用 1. 关于JSON JSON的全称是”JavaScrip…
     面向对象程序设计作为一种重要的程序设计思想,在近些年来得到广泛的推崇.而Java和C++更是面向对象程序设计语言中的翘楚,要彻底摸清面向对象程序设计的精髓和在实际应用中更加高效的进行代码设计,我们有必要对比一下Java和C++的在实现面向对象程序设计上的异同之处,对两种语言的细节之处做一个详尽的了解.     面向对象程序设计概念:     ,,,);      Date d = harry.getHireDay(); System.****;      d.setTime(d.get…
2018面向对象程序设计(Java)第12周学习指导及要求 (2018.11.15-2018.11.18)   学习目标 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: (2) 掌握Java GUI中2D图形绘制常用类的API: (3) 了解Java GUI中2D图形中字体与颜色的设置方法: (4) 了解Java GUI中2D图像的载入方法: (5) 复习第6章-第9章知识内容. 学习资源 1.教材第10章 2.第10章教学课件 3. corejava.zip 4. 实验十二…
学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定义类的基本使用方法,熟悉Math类.String类.math类.Scanner类.LocalDate类的常用API: 掌握用户自定义类的语法规则,包括实例域.静态域.构造器方法.更改器方法.访问器方法.静态方法.main方法.方法参数的定义要求:(重点.难点) 掌握对象的构造方法.定义方法及使用要求:(重点) 理解重载概念及用法: 掌握包的概念及用法: 了解文档注释技术 学习资源 1.教材P91-P146…
2019面向对象程序设计(Java)第12周学习指导及要求 (2019.11.15-2019.11.18)   学习目标 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: (2)  掌握ArrayList.LinkList两个类的用途及常用API: (3) 了解java集合框架体系组成: (4) 掌握Java GUI中框架创建及属性设置中常用类的API: (5) 了解Java GUI中2D图形绘制常用类的API: 学习资源 1.教材第9-10章 2.第9-10章教…
2019面向对象程序设计(java)课程学习进度条 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 20/10 1/0 5 九九乘法表 2 200/40 2/4 8 第三章实验三,实验四: 第三章案例LotteryOdds.java 3 4 200/150 1/5 8 类包装以及用户自定义类的使用 5 400/150 1/1 8 pta编程题 6 500/150 1/1 8 7 600/200 1/1 8 实验二编程题 8…
<2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序 阅读或编译让我 第一周 25/15 1/0 5 编译九九乘法表 第二周 100/25 2/0 5 1.导入程序,理解了String类对象和StringBuilder类对象的用法与区别. 2.通过实验4理解了Java中命令行参数的用法. 3.通过第二次实验我对JAVA的一些简单程序有了初步的理解. 第三周   第四周 120/50 2/0…