文档章节

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

遇见你
 遇见你
发布于 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
108
0

没有更多内容

加载失败,请刷新页面

加载更多

RabbitMq异常处理

1.查找指定文件位置 find . -name "*erlang.cookie" 2.Rabbitmq异常 ===========根据提示,应该是Erlang的cookie出现问题 attempted to contact: ['rabbit@DESKTOP-RVK1IHE'] rabbit@DESKTO......

zhaochaochao
5分钟前
0
0
Java虚拟机学习笔记

jconsole的连接 JConsole的远程连接 JConsole远程连接配置(用VisualVM进行远程连接的配置和JConsole是一摸一样滴) JVM之jconsole远程连接配置...

OSC_fly
5分钟前
0
0
区块链教程以太坊源码分析downloader-peer源码分析

  兄弟连区块链教程以太坊源码分析downloader-peer源码分析,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让...

兄弟连区块链入门教程
7分钟前
0
0
ubuntu 自定义记录用户登录以及操作日志

root@ms:~# cd /etc#更改之前先备份,养成良好的习惯,否则肠子都要悔青了root@ms:/etc# cp profile profile.bakroot@ms:/etc# vi profile 在文章末尾加入下列shell脚本 history US...

Marhal
7分钟前
0
0
liunx 下使用rpm进行软件卸载

rpm -qa | grep php 列出所有的php相关的rpm包 rpm -e xxx 删除包

bengozhong
8分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部