P4 类,对象,类成员简介
1 什么是类
类是对现实世界事物进行抽象所得到的结果
- 事物包括"物质"(实体)与"运动"(逻辑)
- 建模是一个去伪存真、由表及里的过程
唯物主义辨证法对学习面向对象编程很有好处
2 类与对象的关系
对象也叫实例,是类经过"实例化"后得到的内存中的实体
- Formally "instance" is synonymous with "object"——对象和实例是一回事
- "飞机"与"一架飞机"有何区别?天上有"一架"飞机——必须是实例飞,概念是无法飞的
- 有些类是不能实例化的,比如"数学"(Math class),我们不能说"一个数学"
依照类,我们可以创建对象,这就是"实例化"
- 现实生活重关常称"对象",程序世界中常称"实例"
- 两者并无太大区别,初学者不必迷惑
使用new操作符创建类的实例
引用变量与实例的关系
- 孩子与气球; 引用变量:孩子;实例:气球
- 气球不一定有绳子牵着
- 多个孩子可以使用各自的绳子牵着同一个气球,也可以使用同一根绳子牵着气球;
3 类的三大成员——属性,方法,事件
属性(Property)——存储数据,组合起来表示类或对象当前的状态
方法(Method)——由C语言的函数(function)进化而来,表示类或对象"能做"什么。 工作中90%的时间是与方法打交道,因为它是"真正做事"、"构成逻辑"的成员
事件(Event)——类或对象通知其他类或对象的机制,为C#所特有(Java通过其他方法实现这个机制)。 善用事件机制非常重要(切勿滥用)
善用MSDN文档
某些特殊类或对象在成员方面侧重点不同
- 模型类或对象重在属性,如Entity FrameWork
- 工具类或对象重在方法,如Math,Console
- 通知类或对象重在事件,如各种Timer
4 静态成员与实例成员
静态(Static)成员在语义上表示它是"类的成员"——物质的固有的性质,隶属于某个类
实例(非静态)成员在语义上表示它是"对象的成员"——实例成员是属于对象的,而非类
绑定(Binding)指的是编译器如何把一个成员与类或对象关联起来。绑定分为"早绑定"和"晚绑定"
- 早绑定 编译器在编译时就知道成员是隶属于类还是隶属于对象
- 晚绑定 编译器不管,由程序员决定运行起来后一个成员(方法或属性)是隶属于类还是某个对象
- 有晚绑定的语言一般叫做动态语言,例如JavaScript。
不可小觑的点(.)操作符——成员访问操作符
P4 类,对象,类成员简介相关推荐
- 04 c++ 类数据成员的地址和类对象数据成员的地址
2020年10月4日 1,类数据成员和类对象数据成员地址的区别 (1) 类定义是一种类型声明,存在于代码块中,并没有分配内存空间:对类的数据成员取地址,得到的是类的数据成员在类内的相对偏移量: (2) ...
- C++对象模型1——类对象的sizeof、static成员、对象模型、this指针
一.类对象的sizeof 1.空类对象的sizeof class test3{ };int main(int argc, char const *argv[]) { test3 t;cout<& ...
- C++类对象在内存中的布局
目录 一.前言 二.C++ 类对象的内存布局 2.1 只有数据成员的对象 2.2 没有虚函数的对象 2.3 拥有仅一个虚函数的类对象 2.4 拥有多个虚函数的类对象 三.继承关系中的C++类对象内存分 ...
- 类对象和类指针深入分析与对比
1.前言 Student a; s.setName("A");//Studeng *b = new Student(); Student *b; b = new Student() ...
- python 类 对象 魔法方法概念+习题
类 对象 类 对象是c++和java中都有的内容,python定义类的简单语法如下: class 类名: -类变量或者方法 Python 的类定义有点像函数定义,都是以冒号:作为类体的开始,以统一缩进 ...
- python创建变量_Python每天一分钟:给类对象动态新增/删除成员变量和方法(函数)...
一般类对象新增变量或方法的过程 在面向对象(OOP)的编程方法中,如果需要给实例化的类对象新增方法或者属性,一般都是在class类的定义中新增内容,然后才能用类对象来调用新增的方法或变量.如在C++中 ...
- 在保护继承中基类的共有成员_c++中的继承
类的继承,是新的类从已有类那里得到已有的特性.从另一个角度来看这个问题,从已有类产生新类的过程就是类的派生. 派生类的定义 class 派生类名:继承方式 基类名1,继承方式 基类名2 {派生类成员声 ...
- 【C++】构造函数 利用构造函数对类对象进行初始化
7个月之后的补充: 说真的,别再收藏这篇文章了,写的真的很拉跨,建议学习并收藏C++ 六个默认成员函数 + this指针_CPP的底层是哲学的博客-CSDN博客 也是我写的,质量会好很多!!!!!! ...
- 继承类 基类的赋值_Chapter10:继承与派生(四)
之前的文章把继承和派生的基本概念和内部原理都大致理清了.但是类可以视作是一种特殊的数据类型--它也具有转换的功能,称为转型,这一节展开讨论它,以及如何通过指针跨越权限访问不同成员的技巧. 1.类的转型 ...
- python tutorial是什么意思_方法类Python Tutorial(九):类 方法类
题记:写这篇博客要主是加深自己对方法类的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 与其它编程语言比相,Python的类机制加添了最小的新法语和语义.它是C++和Modula- ...
最新文章
- 【SharePoint 2010】SharePoint 2010开发方面的课堂中整理有关问题
- 动态二维数组赋值及for循环遍历和toString遍历
- mac php安装mysql扩展_(MAC) PHP扩展安装
- java 枚举类型 构造函数及用法
- Log4Net配置使用简记
- ubuntu中用apt命令卸载软件
- ThreadLocal父子线程传递实现方案
- android studio闪退代码不报错_代码不报错,不代表真的没错
- 【Lintcode】018.Subsets II
- 信息学奥赛一本通 1307:【例1.3】高精度乘法 | 1174:大整数乘法 | OpenJudge NOI 1.13 09:大整数乘法
- VIM使用小技巧-重新载入文件
- [转]人像识别是个伪命题
- 使用DroidCam将手机作为PC的摄像头
- 在线教会你Excel批量转PDF的小妙招
- 工业蒸汽_到底什么是蒸汽机,我想要一个吗?
- js禁止鼠标右键及F12禁止查看源代码
- 日志说明以及格式统一规范
- javascript——从「最被误解的语言」到「最流行的语言」
- 密码解码常用工具网站汇总
- java格式话时间报错java cannot format given object as a date