随笔分类 - OOP
Java 面向对象编程 tricks
摘要:方法中描述了参数:1. 构造器重载重载构造器时,使用描述了参数的静态工厂方法名,这样做的意义何在呢?就在于为动作赋予意义,提升代码的可解释性:传统的实例化方式:Complex fulcrumPoint = new Complex(23.0);实例化对象时,显然,new...
阅读全文
封装的理解
摘要:封装意味着: 有限可见:外部不可见(内部可见)降低耦合;1. 解耦的实现封装意味着每个对象都应该尽可能少地了解系统的其他部分,这里的了解,可以进一步理解为 “关联”或者“耦合”。如此一来,一旦发生变化,需要了解(适应,做出改变)这一变化的对象就会比较少 —— 从而使得...
阅读全文
面向对象(OOP)五大基本原则
摘要:书单 《Object-Oriented Analysis & Design with Application》:Grady Booch, 下载地址:object-oriented-analysis-and-design-with-applications-2nd-ed...
阅读全文
面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
摘要:Graph:class Graph(dict): def __init__(self, vs=[], es=[]): for v in vs: self.add_vertex(v) for e in es: ...
阅读全文
面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
摘要:Graph:class Graph(dict): def __init__(self, vs=[], es=[]): for v in vs: self.add_vertex(v) for e in es: ...
阅读全文
面向对象 —— 类的分类
摘要:很多时候,我们说的很多概念和对象都是内含丰富、层次复杂的综合体。为了实现正确的决策,就需要对其进行恰当的分类,和层次的厘清。产品 必需品非必需品(奢侈品)1. 常见类的分类容器类:Container Class 数据结构,存储数据;常量类:XXConfig配置类...
阅读全文
面向对象 —— 类的分类
摘要:很多时候,我们说的很多概念和对象都是内含丰富、层次复杂的综合体。为了实现正确的决策,就需要对其进行恰当的分类,和层次的厘清。产品 必需品非必需品(奢侈品)1. 常见类的分类容器类:Container Class 数据结构,存储数据;常量类:XXConfig配置类...
阅读全文
结构体(struct)与类(class)
摘要:在 C++ 的范畴里,除了 struct 结构体不支持访问权限修饰符(private、protected、public)外,已不再区分二者的其他方面语法上的差异。因此,在 C++ 编程中,如果一个类是由 struct 来定义,说明其所有成员都可直接访问(通过.或者->...
阅读全文
结构体(struct)与类(class)
摘要:在 C++ 的范畴里,除了 struct 结构体不支持访问权限修饰符(private、protected、public)外,已不再区分二者的其他方面语法上的差异。因此,在 C++ 编程中,如果一个类是由 struct 来定义,说明其所有成员都可直接访问(通过.或者->...
阅读全文
成员变量的妙用
摘要:通过成员变量的引入实现更为丰富的判断;1. 数据结构考虑二叉树形结构,如果在结点内部维护有指向父节点的指针(BinNode* parent;)的话,因此可以:是否为根节点#define IsRoot(x) (!(x).parent)是否为左孩子结点,#define...
阅读全文
成员变量的妙用
摘要:通过成员变量的引入实现更为丰富的判断;1. 数据结构考虑二叉树形结构,如果在结点内部维护有指向父节点的指针(BinNode* parent;)的话,因此可以:是否为根节点#define IsRoot(x) (!(x).parent)是否为左孩子结点,#define...
阅读全文
面向对象特性、使用面向对象编程的场合
摘要:成员,尤其是成员变量,可以保存实例调用时的中间状态(intermediate states): It’s helpful to have everything in a class like this so that intermediate states can b...
阅读全文
面向对象特性、使用面向对象编程的场合
摘要:成员,尤其是成员变量,可以保存实例调用时的中间状态(intermediate states): It’s helpful to have everything in a class like this so that intermediate states can b...
阅读全文
Python 面向对象 —— 多重继承
摘要:多重继承(一个子类同时继承多个父类),容易造成混乱,即如果两个父类又相同的方法名和变量名时,无法确定继承哪一个。 正因如此,Java 等语言中并不支持多重继承(Java 是单继承多接口)。Python 允许多重继承,但为了避免使用上的混乱。Python 会自动按顺序选...
阅读全文
Python 面向对象 —— 多重继承
摘要:多重继承(一个子类同时继承多个父类),容易造成混乱,即如果两个父类又相同的方法名和变量名时,无法确定继承哪一个。 正因如此,Java 等语言中并不支持多重继承(Java 是单继承多接口)。Python 允许多重继承,但为了避免使用上的混乱。Python 会自动按顺序选...
阅读全文
Python 面向对象 —— super 的使用(Python 2.x vs Python 3.x)
摘要:注意区分当前的 Python 版本是 2.X 还是 3.X,Python 3.X 在 super 的使用上较之 Python 2.X 有较大的变化;1. Python 2.xclass Contact(object): all_contacts = [] ...
阅读全文
Python 面向对象 —— super 的使用(Python 2.x vs Python 3.x)
摘要:注意区分当前的 Python 版本是 2.X 还是 3.X,Python 3.X 在 super 的使用上较之 Python 2.X 有较大的变化;1. Python 2.xclass Contact(object): all_contacts = [] ...
阅读全文
浙公网安备 33010602011771号