文档章节

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
2
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
13
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部