封装

封装:每个对象都包含有它能进行操作的所有信息,这个特性称为封装。这样的方法包含在类中,通过类的实例来实现。

e.g. 我们可以使用遥控器。 遥控器有多个功能

封装的优点

A.良好的封装能够减少耦合(比如实现界面和逻辑分离)

B.可以让类对外接口不变,内部可以实现自由的修改

C.类具有清晰的对外接口,使用者只需调用,无需关心内部

D.因为封装的类功能相对独立,因此能更好的实现代码复用

E.可保护代码不被无意中破坏,通过私有字段等实现内部。注意:这里的代码保护不是指代码本身的加密,而是对不想外部更改的代码通过私有实现。

/// <summary>
/// 狗狗类
/// </summary>
class Dog
{string _dogName;readonly Color _dogColor=Color.Yellow;readonly double _dogPrice = 800.00;int _shoutNumber;/// <summary>/// 构造函数/// </summary>/// <param name="dogName"></param>public Dog(string dogName){DogName = dogName;}/// <summary>/// 狗狗名字 公有属性/// </summary>public string DogName{get { return _dogName; }set { _dogName = value; }}/// <summary>/// 狗狗颜色 只读属性 (颜色一出生就是这个颜色,这里只提供只读,当然这里不考虑染色)/// </summary>public  Color DogColor{        get { return _dogColor;}            }/// <summary>/// 狗狗价格 只读属性 (这是买来的价格,历史是不可以修改的)/// </summary>public  double DogPrice{get { return _dogPrice; }}/// <summary>/// 狗叫的次数 (不同的陌生人来,叫的次数不同)/// </summary>public int  ShoutNumber{set{_shoutNumber=value;}get { return _shoutNumber; }}/// <summary>/// 狗叫的方法/// </summary>public void  Shout(){int i=0;string ShoutNum="";do{ShoutNum += "旺!";i++;} while (i <= ShoutNumber);MessageBox.Show(ShoutNum);}
}

封装要点

1.封装就是把一个object的所有properties和methods放在一起

2.保持统一的对外接口,内部修改不影响外部调用

转载于:https://www.cnblogs.com/TheMiao/p/9255932.html

面向对象三大特性: 封装相关推荐

  1. C++面向对象三大特性——封装与信息隐蔽

    4.1 封装(实现手段--class) 有意义的事物都可以抽象.在抽象类的时候不要想着代码是怎么实现,而是用自然语言去分析逻辑即可!否则极易出错. 4.1.1 封装的意义 封装是C++面向对象三大特性 ...

  2. Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__

    一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...

  3. Java面向对象三大特性(封装、继承、多态)

    文章目录 前言 一.封装 1. 封装的概念 2. private实现封装 3. getter和setter方法 4.封装的好处 二.继承 1. 继承的概念 2. extends实现继承 3. supe ...

  4. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  5. Java面向对象三大特性(封装继承多态)解释及案例

    文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...

  6. 面向对象三大特性-封装

    封装: [封装]          隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处]  1. 将变化隔离:  2. 便于使用: 3. 提高复用性:  4. 提高安全性: [封装原则]    ...

  7. python面向对象三大特性_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  8. Study16 面向对象三大特性

    面向对象三大特性 封装: 该露的露,该藏的藏 程序设计要求**"高内聚,低耦合"**.高内聚就是类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅暴露少量的方法给外部使用 封 ...

  9. JS面向对象三大特性

    首先对象的声明语法 1.通过Object var object = new Object(); //动态添加属性.方法 object.name='test'; object.method = func ...

最新文章

  1. php图片特效,php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
  2. Ubuntu Server 16.04服务器版配置图解教程06 - 安装MySql
  3. C#异步编程的实现方式(1)——异步委托
  4. MOSS点滴(1):如何开发和部署feature
  5. 2015 Google code jam Qualification Round A 水
  6. 观察者模式在个人网站邮件发布与订阅中的实践
  7. jQuery实现分页
  8. 静态工具类注入service的方法
  9. copyof java_JDK10——copyOf方法
  10. AlphaBlend
  11. 服务器的虚拟内存怎么调,服务器的虚拟内存怎么调才好
  12. OCP 12c最新考试原题及答案(071-4)
  13. 读react.js小书 抽象公共组件类
  14. 虚拟机安装Win7系统
  15. 1. NET 6.0 前言
  16. textbox提示文字属性_《我来自江湖》MUD类武侠题材多样性玩法的单机文字游戏...
  17. SM2/RSA证书工具--简单CA实现
  18. 符号Symbol介绍及应用
  19. ubuntu14.04 有道辞典 安装成功后 打不开 的 解决办法
  20. 人工智能到底有多强大?

热门文章

  1. NB模组基本AT指令
  2. display:table-cell自适应布局下连续单词字符换行
  3. JS之返回字符串最后出现的位置lastIndexOf
  4. socket的阻塞模式和非阻塞模式(send和recv函数在阻塞和非阻塞模式下的表现)
  5. 设计一个按优先数调度算法实现处理器调度的程序_计算机中的程序都是怎么运行的,来深入了解一下吧...
  6. 基于matlab的车流量检测,求解释代码,一段交通车流量检测的代码
  7. H3C 环路避免机制一:路由毒化
  8. scratch少儿编程第一季——07、人要衣装佛靠金装——外观模块
  9. ubuntu中使用apt-get安装zbar
  10. cocos2d-x 2.2 创建项目