C#基础知识-编程思想之封装(七)
既然是学习面向对象的编程那自然要了解面向对象中的三大基石,封装、继承和多态。
我觉得要解释这三大基本概念用一篇文档很难解释清楚,想要具体形象的去了解,还是需要每一个概念用一个篇幅来说明,将封装、继承和多态的思想理解好,对我们后面程序设计会有很大的帮助,达到很好的代码复用,开发的效率、拓展性会大大提高,工作量也会随之减少。
封装在面向对象程序的设计中的第一步,其核心的思想就是将客观的事物,封装成抽象的类,以类为单位,并且可以控制哪些属性哪些行为对于外部的类或者对象可见,对不需要别人知道的信息、行为进行相应的隐藏。
下面举一个生活中例子来说明封装的概念:
电视机是我们生活中很经常使用的,电视机从一个个电子元件的拼装到最后成形其实需要经过很多的处理程序,最后成形我们使用的时候并不需要去管它中间过程是如何实现的,我们只需要接好电源,插好线,给我们一个遥控让我们可以换台、调音量,以及各种的设置,电视机从一开始制造到我们手中正常使用的这个过程就符合我们面向对象中的封装的概念。一台电视机的核心就是那么几块电路板+显示屏,我们作为一个使用者我们并不需要去知道它的核心是怎样实现的,不用去管它用了什么显示的技术,不需要考虑怎么焊接,用几颗电容,电路集成度等,对于我们而言只需要知道怎么通电,开关在哪里,怎么换台调频道等等,这就体现了良好的封装特性。

(一台封装好的电视,对于核心的零件、技术封闭的,但是对于外部的操作如换台、调音量是开放的)
从上面的例子中可以总结一下封装的概念:
1.当我们设计一个程序的时候,将不想给外部的对象、类看到的信息隐藏,如电视机的电路板、电子元件等。
2.将对外部需要别人看到的信息或功能暴露出来,如使用遥控器换台、调节音量等。
对于一个封装性很好的类来说引起这个类的变化只有一种。详细点说就是当你设计一个类的时候应该把和此类相关的行为属性都添加在一起,不要将很多不相关的功能行为集中在一个类,这样的话引起类的变化就可能有多种了,就会造成类的污染,很容易在修改其它不相关功能的同时而修改了这个类。
封装的概念相对是比较好理解的,其实在面向对象的编程中,很多的概念都是与生活中的例子相关,在学习了具体的代码后应该多点思考概念。
C#基础知识-编程思想之封装(七)的更多相关文章
- 1.Java基础-面向对象编程思想(封装继承多态接口)
封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...
- C#基础知识-面向对象思想之继承(八)
上一篇的标题编程思想我觉得不是很符合主题,因为编程思想的范围太大了,不仅仅是封装 继承 多态,所以比较符合主题的应该是面向对象思想.这一篇中将继续叙述面向对象思想中的继承. 从字面来看继承表达的意思已 ...
- JS基础语法---编程思想和对象
编程思想: 把一些生活中做事的经验融入到程序中 面向过程:凡事都要亲力亲为,每件事的具体过程都要知道,注重的是过程 面向对象:根据需求找对象,所有的事都用对象来做,注重的是结果 面向对象特性: 封装, ...
- Java基础知识二次学习--第七章 容器
第七章 容器 时间:2017年4月27日15:08:30 章节:07章01节~07章04节 视频长度:20:21 +12:38 +3:55 +2:57 内容:容器API 心得: Java API ...
- Java编程思想(第4版) 中文清晰PDF完整版
Java编程思想(第4版) 中文清晰PDF完整版 [日期:2014-08-11] 来源:Linux社区 作者:Linux [字体:大 中 小] <Java编程思想>这本书赢得了全 ...
- 《Java编程思想第四版完整中文高清版.pdf》-笔记
D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long ...
- Python黑帽编程3.0 第三章 网络接口层攻击基础知识
3.0 第三章 网络接口层攻击基础知识 首先还是要提醒各位同学,在学习本章之前,请认真的学习TCP/IP体系结构的相关知识,本系列教程在这方面只会浅尝辄止. 本节简单概述下OSI七层模型和TCP/IP ...
- [.net 面向对象编程基础] (11) 面向对象三大特性——封装
[.net 面向对象编程基础] (11) 面向对象三大特性——封装 我们的课题是面向对象编程,前面主要介绍了面向对象的基础知识,而从这里开始才是面向对象的核心部分,即 面向对象的三大特性:封装.继承. ...
- C# 基础知识 (一).概念与思想篇
在C#中有一些我自己认为比较独特的知识点,这些知识点是我经常使用的知识,但对它们的了解还是比较少的,所以通过查找资料学习,总结了这些独特的知识点并简单叙述,第一篇主要是一些概念和思想方面的知识.(后面 ...
随机推荐
- linux监控流量脚本
#!/bin/bashRx=`ifconfig eno16777736 | grep RX | grep packets | awk '{print $5}'`Tx=`ifconfig eno1677 ...
- piwik安装部署最佳实践
1.piwik介绍 Piwik是一个PHP和MySQL的开放源代码的Web统计软件,它给你一些关于你的网站的实用统计报告,比如网页浏览人数,访问最多的页面,搜索引擎关键词等等. Piwik拥有众多不同 ...
- WPF之路五:wpf 隐藏与显示 Visibility
WPF里枚举变量Visibility 有三个值:Visible, Collapsed和Hidden.其中Collapsed是WPF新引进的,其作用是不仅隐去Control,同时也会移除Control所 ...
- 性能测试培训:tomcat性能调优方法
性能测试培训:tomcat性能调优方法 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner ...
- 老李推荐: 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 4
这一部分的代码逻辑关系是这样的: 344行: 一个外部循环每次从上次保存下来的设备列表获得一个设备Device实例 350行: 再在一个内部循环从最新的设备列表中获得一个设备Device实例 353行 ...
- css常用技巧集合
1 不想让按钮touch时有蓝色的边框或半透明灰色遮罩(根据系统而定) /*解决方式一*/ -webkit-tap-highlight-color:rgba(0,0,0,0); -webkit-use ...
- HTML解析器BeautifulSoup
BeautifulSoup是Python的一个库,可解析用urllib2抓取下来的HTML 1.Beautiful Soup 安装 可以利用 pip 来安装,在Python程序中导入 pip inst ...
- sphinx全文检索引擎
今天刚刚学习了一下,就直接分享上去,有些还没有接触,如果有问题请指正,谢谢 sphinx是什么? Sphinx是一个全文检索引擎.主要为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能. S ...
- 本地yum服务搭建
1.准备linux ISO系统镜像文件 (例如:rhel-server-5.5-i386-dvd.iso) 2.linux虚拟机(centos 7 192.168.50.24 ),启动sshd服务 ...
- Linux - 进程间通信 - 命名管道
1.命名管道的特点: (1)是管道,可用于非血缘关系的进程间的通信 (2)使用命名管道时,梁金成需要用路径表示通道. (3)命名管道以FIFO的文件形式存储于文件系统中.(FIFO:总是按照先进先出的 ...