文档章节

多角度剖析“面向对象编程”

遇见你
 遇见你
发布于 2016/02/03 15:38
字数 612
阅读 13
收藏 0

    Noobs:对着自己的女朋友编程,这样子敲代码就不累了。

    初识“面向对象”:想要理解“面向对象编程”,就要彻底地了解“对象是什么对象”。首先,我们要明白,这里所说的“对象”指的并不是“谈对象”,而是英文里的“Object”。万事万物在计算机编程中,都可以叫做“object”。这时候,我们可能注意到,万事万物是一种很宽泛的说法。但是,这正是“面向对象编程”的目标,就是处理更多的任务。例如,上到星系、宇宙,下到飞沙走砾,都能是对象。

     对象:对象是对客观事物的抽象,对象是一种特殊的数据类型。

     对象的组成:对象中数据称为实例域(instance field)、操纵数据的过程称为方法(method),每个特定的类实例(对象)都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(state)。        

     对象的三个主要 特性:

                     行为(behaviour):可以对对象施加的方法

                     状态(state):当施加方法时,对象该如何响应

                     标识(identity):如何辨别具有相同行为与状态的不同对象

      从数据库的角度看对象:创建一个数据库,接着创建一个 一个的表,这些表对于面向对象编程来说就是一个一个鲜活的对象。每一个表有若干项,每一项就是对象的一个属性,第一项往往是该对象的id,这个id也可以是没有意义的,只会自增自减。注意:数据库只从放对象的属性(状态和标识)。

     类:类是对对象的抽象。类是一种抽象的数据类型。

    浅析“类与对象”的关系:类(class)是构造对象的模版或蓝图 。我们可以将类想象成制作小甜饼的切割机,将类想象成小甜饼。由类构造(construct)对象的过程称为创建类的实例(instance)。

    扩展一个类的过程——继承(inheritance)

    将数据(属性)和行为(方法)组和在一个包里,隐藏数据的实现方式——封装(encapsulation,数据隐藏)



© 著作权归作者所有

共有 人打赏支持
遇见你
粉丝 6
博文 28
码字总数 8271
作品 0
郑州
程序员
私信 提问
BOOST.ASIO源码剖析(一)

前言 源码之前,了无秘密。 ——侯捷 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有...

moki_oschina
04/11
0
0
设计模式系列-面向对象葵花宝典-面向对象基础

设计模式系列-面向对象葵花宝典-面向对象基础 声明:本系列为面向对象葵花宝典一书学习总结内容,原作者博客链接 书籍简介 面向对象葵花宝典:思想、技巧与实践》系统地讲述了面向对象技术的...

wwlcsdn000
2017/11/22
0
0
C++对象内存模型---数据封装

“C++是C的超集”,这句话里包含了两个问题: 1. C++兼容C; 2. C++在C之上进行了扩展; 那C++在C之上进行了哪些扩展呢?众所周知,C++内置了众多编程机制、支持众多编程风格:面向过程、基于...

rexlv
2013/05/05
0
0
开始学习函数式编程后对编程的一些新感受

我们绝大多数程序员都是用命令式编程,因为学校教的编程就是命令式的,什么C、Java等等(当然他们也可以用函数式编程)。函数式编程和命令式编程不是一个相对应层次的概念。理论上,函数式编...

无牙子
2014/03/31
0
1
WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)

[爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道《天天山海经》为此录制的节目视频(苏州话)]]在.NET Framework 2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型...

长平狐
2012/09/04
118
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS实例详解:Flex布局

本文由云+社区发表 本文将通过三个简单的实例,实际应用上篇文章的基础理论知识,展示下Flex布局是如何解决CSS布局问题。 一.垂直居中 这里同时用非flex布局和flex布局两种方式来实现,可以...

腾讯云加社区
15分钟前
0
0
安装全局webpack

https://www.jianshu.com/p/119a825d8bba npm ls webpack 和npm ls webpack -g 查看本地和全局版本 npm install webpack@1.15.0 -g 全局 然后到项目里面 npm install npm init npm install w......

lsy999
27分钟前
1
0
/etc/profile和/etc/environment的区别

/etc/profile 文件 当一个用户登录Linux系统或使用 su 命令切换到另一个用户时,设置用户环境第一个读取的文件就是 /etc/profile ,此文件为系统全局变量配置文件,且仅仅在第一次登录系统时...

calmsnow
33分钟前
4
0
rabbitMQ日常管理(转)

一、网页登录方法 http://127.0.0.1:15672/ 用户名和密码默认为guest/guest 用java代码去连接rabbitmq用的端口是5672 二、rabbitMQ基本概念 RabbitMQ是一个开源的AMQP实现,服务器端用Erlan...

__HuWei
39分钟前
2
0
gitlab cicd

https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

kut
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部