Atitit object 和class的理解 目录 1.1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。 1 1.2. 那我们怎么把这些Object给创建起来
Atitit object 和class的理解
目录
1.1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。 1
1.2. 那我们怎么把这些Object给创建起来?并且让Object 和 Class关联?” 2
1.3. 要操作Object的数据, 到底操作的是哪一个Object?:“要有this!” 4
1.4. 要有继承 防止Class包含了类似的功能 4
1.5. 在概念层次进行编程。” 4
Object
- 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。
上帝说:“要有Class!把这些重复的方法代码从对象中剥离出来,放到一个公共的Class中! ”
- 那我们怎么把这些Object给创建起来?并且让Object 和 Class关联?”
上帝说:“可以用new 这个关键字:Stack object1 = new Stack();”
Stack类的函数定义只有一份,但是Stack类生成的Object有很多份。
- 要操作Object的数据, 到底操作的是哪一个Object?:“要有this!”
每次调用函数的时候,可以把要操作的Object作为一个隐藏的参数传递进去。例如void push(int data),真正在调用的时候是这样的:void push(Stack this, int data)。
有个叫Guido的说:“我能不能把this改成 self ? ”
上帝说:“随你喽!”
还有人说:“这不又回到我们原始的状态去了吗? void push(Stack *s,int data)”
上帝告诫说:“虽然本质相同,但是表达形式不同,之前你在语法层面必须传递一个Stack 对象到函数,现在在语法层面不用加了。我会在编译后的代码,或者运行时自动给你们加上。”
- 要有继承 防止Class包含了类似的功能
很多很多的Class,上帝发现有些Class包含了类似的功能,还是有重复代码。
上帝说:“要有继承!把那些类似的、重复代码放到父类当中去,这样子类就可以直接使用,不用重新再写一遍了
- 在概念层次进行编程。”
编程的关键是要抽象啊!你们得把系统需求抽象成高层的概念,然后在概念层次进行编程。”
这句话本身就很抽象。
分析问题应该站在概念的层次上,而不是站在实现的层次上。什么叫做概念的层次呢?简单的说就是分析对象该做什么,而不是分析对象怎么做。前者属于分析的阶段,后者属于设计甚至是实现的阶段
简单的说吧,在概念层次上进行分析就是设计出接口(或是基类),而不用关心具体的接口实现(实现推迟到子类再实现)
面向对象圣经.html
Atitit object 和class的理解 目录 1.1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。 1 1.2. 那我们怎么把这些Object给创建起来相关推荐
- 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析...
作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...
- Python之pandas:特征工程中数据类型(object/category/bool/int32/int64/float64)的简介、数据类型转换四大方法、案例应用之详细攻略
Python之pandas:特征工程中数据类型(object/category/bool/int32/int64/float64)的简介.数据类型转换四大方法.案例应用之详细攻略 目录 特征工程中数据 ...
- java阻塞队列作用_简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用...
简单理解阻塞队列(BlockingQueue)中的take/put方法以及Condition存在的作用 Condition:可以理解成一把锁的一个钥匙,它既可以解锁(通知放行),又可以加锁(阻塞) n ...
- 理解notify()/notifyall()/interupt()对于线程里面wait方法的影响
本文将通过三个程序例子帮助读者理解其中的原理: import java.text.SimpleDateFormat; import java.util.Date; import java.util.c ...
- 理解一下jQuery.extend()和jQuery.fn.extend()方法
为了方便用户创建插件,jquery提供了jQuery.extend()和jQuery.fn.extend()方法. 1. jQuery.extend() 方法有一个重载. jQuery.extend( ...
- python get 下载 目录_python实现支持目录FTP上传下载文件的方法
本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/en ...
- python备份目录下文件夹_Python备份目录及目录下的全部内容的实现方法
本来是想写一个东西可以直接调用TortoiseSVN保存当前代码到一个分枝下的. 可惜调用SVN的部分还在研究.就先写了目录拷贝的部分. 如果有喜欢研究Python的童鞋愿意提供想法或者建议的话, 这 ...
- dede织梦data目录正确迁移及引起的问题解决方法
dede织梦data目录正确迁移及引起的问题解决方法 参考文章: (1)dede织梦data目录正确迁移及引起的问题解决方法 (2)https://www.cnblogs.com/cdxkyz/arc ...
- python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...
实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...
- python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法
实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...
最新文章
- 2022-2028年中国TAC薄膜行业市场全景评估及投资前景规划报告
- 贾扬清:我对人工智能方向的一点浅见
- 谋定数字农业生态系统 万亿市场对话中国农民丰收节交易会
- YII框架开发一个项目的通用目录结构:
- php实现服务器文件同步,PHPstorm配置同步服务器文件
- JAVA类定义,成员类,抽象类及接口类
- 100c之29:求具有abcd= ( ab + cd )^2 性质的四位数
- 腾讯视频转码,把qlv格式转换成mp4格式
- uniapp 打包H5自定义模板
- Invalid bound statement (not found): com.xxx.mapper.xxxMapper.selectxxx
- Visual C++中位图按钮的新颖设计
- 【致远FAQ】致远OA启动不起来了(中集)
- python房子_用Python研究了三千套房子,告诉你究竟是什么抬高了房价?
- linux打印机验证密码,HP LaserJet Pro打印机远程管理员密码泄露漏洞
- mysql中创建数据表
- N 上CR SPCSS00383586
- 【Android】 禁止首屏时钟AppWidget拖动到其他屏
- 例说图解TCP/IP协议族--TLS篇(1)抓包分析SSL/TLS握手
- Elsarticle - CAS文件使用说明
- php 调用 百度SDK 实现 图片审核+文本内容审核(敏感词过滤)
热门文章
- 以弹窗形式打开页面_“弹窗广告”肆意而为!扰民?还可能侵权!
- python逐行读取txt文件readline_Python File readline() 方法
- sh文件在linux下如何运行_RTMP协议安防视频平台EasyDSS在Linux系统下运行报错,如何处理?_...
- 在浏览器中将表格导入到本地的EXCEL文件,注意控制内存
- java语言之数组-----选择排序
- serv-u启动管理控制台后提示脚本错误解决方案
- hdu 2412(树形dp)
- DWR3.0 文件上传
- Packet Tracert 5.0 使用教程
- 在oracle表中增加字段,并调整字段的顺序