对《写给大家看的面向对象编程书》的一点收获
2013-09-17 22:04
162 查看
最近读了matt weisfeld写的《写个大家看的面向对象编程书》,这本书主要讲了面向对象的一些主要的思想。侧重于向读者解释面向对象中的一些概念和思想。
我对面向对象的一些认识:面向对象主要是来自与人类世界自己的一种思考方式,当我们考虑一个事物时,一般是将事物作为一个对象进行思考。其中对象有自己的一些属性,同时也有自己的一些行为。这体现在面向对象中主要有,多态性,虚函数,继承,组合,隐藏,接口和实现等等
以下将对这其中的重要的一些观点进行介绍
多态性:指对于同一个消息,不同的对象对于此消息会有不同的结果,即多种形态的意思。如画出一些图形,对于同一个draw方法,在circle,star,square中的实现方法各不相同,对于这个图形消息,会得到不同的图像。、
继承:它是面向对象中最重要的一个结果。即表现为子类继承超类(父类)的属性和方法,是一种is-a的关系,这样在构建一个新的对象时,会带来极大的方便性。如狗和猫都是哺乳动物,可以建立一个哺乳动物的超类,这样在建立狗对象和猫对象时就会带来很大的方便性。
组合:一个对象包含其他对象,是has-a的关系。如汽车包含了轮胎、发动机等等。它和继承还是有很大的区别的
虚类:包含虚函数的类,是不能被实例化的
虚函数:不能提供实现的函数,可以再继承中实现。是实现多态的基础。
类中的三种属性:public,protect,private,其中的private实现了隐藏,即只有自己的类和子类才能访问它,其他的类没有访问的权限。
一般来说,最好的设计就是竟可能的隐藏细节,提供竟可能少的接口。
如上图中的继承关系和一些虚函数的一些关系,是VS2010中的类的视图。
shape类的声明
#pragma once
#include <iostream>
class shape
{
public:
shape(void);
~shape(void);
virtual void draw();
};
circle的定义
#include "StdAfx.h"
#include "circle.h"
#include "shape.h"
circle::circle(void)
{
}
circle::~circle(void)
{
}
void circle::draw()
{
std::cout<<"i am drawing circle"<<std::endl;
}
我对面向对象的一些认识:面向对象主要是来自与人类世界自己的一种思考方式,当我们考虑一个事物时,一般是将事物作为一个对象进行思考。其中对象有自己的一些属性,同时也有自己的一些行为。这体现在面向对象中主要有,多态性,虚函数,继承,组合,隐藏,接口和实现等等
以下将对这其中的重要的一些观点进行介绍
多态性:指对于同一个消息,不同的对象对于此消息会有不同的结果,即多种形态的意思。如画出一些图形,对于同一个draw方法,在circle,star,square中的实现方法各不相同,对于这个图形消息,会得到不同的图像。、
继承:它是面向对象中最重要的一个结果。即表现为子类继承超类(父类)的属性和方法,是一种is-a的关系,这样在构建一个新的对象时,会带来极大的方便性。如狗和猫都是哺乳动物,可以建立一个哺乳动物的超类,这样在建立狗对象和猫对象时就会带来很大的方便性。
组合:一个对象包含其他对象,是has-a的关系。如汽车包含了轮胎、发动机等等。它和继承还是有很大的区别的
虚类:包含虚函数的类,是不能被实例化的
虚函数:不能提供实现的函数,可以再继承中实现。是实现多态的基础。
类中的三种属性:public,protect,private,其中的private实现了隐藏,即只有自己的类和子类才能访问它,其他的类没有访问的权限。
一般来说,最好的设计就是竟可能的隐藏细节,提供竟可能少的接口。
如上图中的继承关系和一些虚函数的一些关系,是VS2010中的类的视图。
shape类的声明
#pragma once
#include <iostream>
class shape
{
public:
shape(void);
~shape(void);
virtual void draw();
};
circle的定义
#include "StdAfx.h"
#include "circle.h"
#include "shape.h"
circle::circle(void)
{
}
circle::~circle(void)
{
}
void circle::draw()
{
std::cout<<"i am drawing circle"<<std::endl;
}
相关文章推荐
- C++拷贝构造函数的一点收获
- 偶尔逛下书店.居然多少有那末一点收获. 知道网上的[威客].[赚客]吗?
- 关于利用TOP+临时表进行分页一点收获
- 【Java】捣鼓Java日志的一点小收获
- 步进电机的一点收获
- 【高效生活】记录这几天把玩IDEA的一点收获
- 读linux2.6驱动的一点收获[转]
- 关于VB.Net的知识的一点收获
- 08年思想上的一点收获分享【工作中我的三项指导原则】
- Maxima解方程的一点收获
- 做项目的一点收获之一
- 对CONST一点收获
- javascript DOM 的一点的收获
- 读苹果官方文档的一点小收获
- 今天学习C# Itext大一点收获!
- 最近学习python的一点收获
- 调试堆的一点小收获
- C#中精确计时的一点收获
- 关于openssl几个API的一点小收获