• 类是成员变量和成员函数的封装,封装的一个重要功能就是可见性(继承除外,当然继承是面向对象的另外一个重要特性),所谓可见性,类内可见,类外不可见。可见性保证了类型安全(type-safe)

  • 对类进行实例化(调用类的构造函数),获取类的对象,单是从类和对象的分别的命名上,也能体会类与对象的区别,类一般是抽象名词(Host),对象则是具体名词(Customs)。

0. 成员变量的选择

一个对象类,当然不只有限的属性,如果要追究和细分下去,能找出无数个属性出来。显然当我们进行某些类的设计时,首先需要定义其成员变量。成员变量对应于对象类的属性。成员变量的选择和确定的关键,看的该变量是否与实际问题的解决密切相关,该变量是否是解决问题所涉及的变量。

比如一个车辆排队系统,汽车的属性,显然需要:

  • 到达时间;
  • 优先级;

而与颜色、车重,等等属性无关。

1. 从泛化到特殊

公共基类(比如公共事件基类,Event):规范所有事件类的形式,在其中实现几个所有事件都需要的公共操作,有时也需要定义一个什么都不做的成员方法。

派生类:只需要根据实际情况,把具体类(事件类)定义为基类的派生类,在不同派生类里根据实际情况定义基类中什么也未作的成员方法。

2. 动词做类

可封装的都可做类(所谓封装,针对的是成员属性和成员方法,封装了的成员变量,成员变量类内可见,可获取其值,也可对它的值进行修改,然后将对成员变量的相关操作封装进

比如以事件类(Event)作抽象基类,派生出来的到达类(Arrive),离开类(Leave),含义更像是动词,而不是通常面向对象编程中的“人”、“动物”、“水果”等等具有鲜明的对象、可封装特性的类别。

面向对象 —— 对类(class)的理解相关推荐

  1. 面向对象(类的概念,属性,方法,属性的声明,面向对象编程思维

    1 面向对象 1.1 你是如何认识新事物的? 从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类. 1.2 类(Class)的概念(A) 类是对一组具有相同特征和行为的对象的抽象描述 ...

  2. Java 面向对象:super关键字的理解

    Java 面向对象:super关键字的理解 一.Super关键字: 1. super调用父类的构造方法,必须在构造方法的第一个 2. super只能出现在子类的方法或构造方法中! 3. super和t ...

  3. Golang面向对象之-类

    Golang支持面向对象编程,支持基本的继承,封装,接口等基本概念,也很容易实现,但是Golang是一种松散的面向对象,约束远没有java,c++那么严格,Golang 可以用结构体来模拟类,并给结构 ...

  4. Python 入门 —— Python 面向对象:类的创建及其基本内置方法的使用

    Python 面向对象:类的创建及其基本内置方法的使用 首先了解一下什么是面向对象 面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. ...

  5. Python面向对象编程——类的学习

    面向对象编程     面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向 ...

  6. Java—面向对象设计—类和对象

    理解面向对象程序设计 面向对象程序(Object-oriented programming,OOP)设计是继面向过程又一具有里程碑意义的编程思想,是现实世界模型的自然延伸.下面从结构化程序设计说起,逐 ...

  7. Java基础学习第十三讲:Java面向对象---嵌套类

    Java面向对象-嵌套类.内部类.匿名类 一.static静态 在<Java编程思想>有这样一段话: "static方法就是没有this的方法.在static方法内部不能调用非静 ...

  8. Java-入门之面向对象以及类和对象的概念(一)

    面向对象,类,对象? 前言:只有光头才能变强! 一:面向对象 当我们初学java时,扑面而来的一个词就是面向对象,那什么是面向的对象呢 ? 在说面向对象之前,大家先要知道对象是什么,如果你脑子里第一想 ...

  9. 谈谈对面向对象、类、对象的了解

    谈谈对面向对象.类.对象的了解 面向对象 强调具备了功能的对象,以类 / 对象为最小单位,考虑让谁来做. 面向对象编程语言中都有类的概念,代码的组织靠类(代码的最小组织单位是类),面向对象编程中执行一 ...

  10. php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例

    本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: class Person { private $name; private $sex; private $age; ...

最新文章

  1. wfs.js windows用法
  2. 图像处理中的拉普拉斯算子
  3. VTK:图片之Transparency
  4. winphone8更换帐号问题的几点说明
  5. Python进行特征提取
  6. 51nod1433--简单数学
  7. IT人的地摊不就是开源么 | 凌云时刻
  8. Telegram支持删除双方设备中的聊天记录
  9. 网络空间安全现状与国家战略
  10. OPENG 获取状态的一些枚举值
  11. Jenkins杀掉子进程解决方法(转载)
  12. 教务管理系统:成绩、课表查询接口设计及抢课、监控功能实现
  13. mysql binlog提取sql_导出mysqlbinlog语句
  14. dispatch(dispatched)
  15. php ajax 考试倒计时,基于Ajax技术实现考试倒计时并自动提交试卷
  16. 一款模拟养成类游戏的策划大纲
  17. Homework 1 : Knowledge items of C++ Answer (part 1)
  18. python儿童编程例子代码-python儿童编程
  19. [C语言]累加器----PTA
  20. 智能卡应用的开发流程

热门文章

  1. python 括号 垃圾_Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?
  2. Linux系统下修改主机名(CentOS7)
  3. Oracle iops升高查看,一则简单的磁盘的iops测试
  4. 矩阵维度必须一致是什么意思_糖化肌肤是什么意思?抗糖养肤你必须知道这些...
  5. css 倒三角_改善CSS的10种最佳做法,帮助你从样式中获得最大的收益。
  6. Mysql中导入和导出数据库
  7. Redis教程:基础知识
  8. Matlab编程与C编程的不同
  9. php fopen 清空文件内容,如何在c语言中清空文件里的内容?
  10. java技术指标_使用 Micrometer 记录 Java 应用性能指标