文档章节

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

遇见你
 遇见你
发布于 2016/02/03 15:38
字数 612
阅读 13
收藏 0
点赞 1
评论 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

设计模式系列-面向对象葵花宝典-面向对象基础

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

wwlcsdn000 ⋅ 2017/11/22 ⋅ 0

C++对象内存模型---数据封装

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

rexlv ⋅ 2013/05/05 ⋅ 0

开始学习函数式编程后对编程的一些新感受

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

无牙子 ⋅ 2014/03/31 ⋅ 1

为什么我希望用C而不是C++来实现ZeroMQ(第二篇)

译注:这篇文章可能又会引起 C++ 程序员的诸多不适,就作者本文所描述的问题来看,某些“C++的问题”其实是可以有C++的解决方案的。请参阅侵入式和非侵入式容器。但是考虑到ZeroMQ是一个很底...

开心303 ⋅ 2012/09/12 ⋅ 2

WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)

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

长平狐 ⋅ 2012/09/04 ⋅ 0

小菜学设计模式——里氏替换原则

背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成...

learn_more ⋅ 2015/05/28 ⋅ 0

java 7 入门书籍

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3版...

modernizr ⋅ 2014/05/15 ⋅ 9

面向接口编程详解(一)

我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作...

不最醉不龟归 ⋅ 2016/11/17 ⋅ 0

抽象类和接口的区别,使用场景

1接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。 2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法 3 如果某一些类的实现有共通之处,则可...

zhouw ⋅ 2014/03/28 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部