进入面向对象的世界:类就是代码,对象是内存。
2007-02-01 15:21
267 查看
从今天开始,我们要逐步的接触和了解面向对象。
首先我们先了解一下抽象的意思。我不讨论理论意义上对于抽象的名词解释,我只通过我的理解来描述。
1int i = 7;
这行代码非常非常地简单,但就蕴含着抽象。抽象了什么呢?int抽象了一个4个字节的空间,7抽象了两进制111。
1public class Car
2
6public class Warehouse
7{
8
9}
看上面的代码,如果你对单词的理解没有歧义的话,那么也许就能在你的大脑中映射出汽车和仓库。瞧,这就是抽象的意义。封装内部的具体执行细节。
所以我们先记住第一点:
抽象指的是类(Class)。
类仅仅是文字上的描述,相当于图纸。所以我们有一份QQ汽车的设计图纸,我们可以称这个图纸为类,因为他抽象了将来被生产出来的汽车所具有的所有价值体现。这份图纸被转到流水线后,就生产出了汽车,那么汽车和图纸有什么区别呢?我认为汽车是真正消耗了社会资源的实际物品,就是说汽车是图纸的实例。
所以我们记住第二点:
实例指的是对象(Object)。
总结一下:类就是代码,对象是内存。
那为什么我们要进入面向对象的世界呢?我们以前的C,VB等开发语言,还记得我们要背函数吗?记不住函数,要去帮助找相关数据操作的函数。比如我要去MSDN查字符串函数。找起来还很不方便,因此我们要买书,书上对各函数作了分类:字符串、日期、数学。我们发现函数被有序的组合起来,我们学习和查找都方便的多。所以产生了类,类把相关自身数据类型的函数聚集在一起,便于我们使用。
因此第三点:
函数是无序世界,类是有序世界。
C#中所有的类型都是对象类型,类仅支持单继承
类是一组数据的集合,我们将他们分类看下
类允许修饰,有类声明修饰、访问修饰、成员修饰
首先我们先了解一下抽象的意思。我不讨论理论意义上对于抽象的名词解释,我只通过我的理解来描述。
1int i = 7;
这行代码非常非常地简单,但就蕴含着抽象。抽象了什么呢?int抽象了一个4个字节的空间,7抽象了两进制111。
1public class Car
2
6public class Warehouse
7{
8
9}
看上面的代码,如果你对单词的理解没有歧义的话,那么也许就能在你的大脑中映射出汽车和仓库。瞧,这就是抽象的意义。封装内部的具体执行细节。
所以我们先记住第一点:
抽象指的是类(Class)。
类仅仅是文字上的描述,相当于图纸。所以我们有一份QQ汽车的设计图纸,我们可以称这个图纸为类,因为他抽象了将来被生产出来的汽车所具有的所有价值体现。这份图纸被转到流水线后,就生产出了汽车,那么汽车和图纸有什么区别呢?我认为汽车是真正消耗了社会资源的实际物品,就是说汽车是图纸的实例。
所以我们记住第二点:
实例指的是对象(Object)。
总结一下:类就是代码,对象是内存。
那为什么我们要进入面向对象的世界呢?我们以前的C,VB等开发语言,还记得我们要背函数吗?记不住函数,要去帮助找相关数据操作的函数。比如我要去MSDN查字符串函数。找起来还很不方便,因此我们要买书,书上对各函数作了分类:字符串、日期、数学。我们发现函数被有序的组合起来,我们学习和查找都方便的多。所以产生了类,类把相关自身数据类型的函数聚集在一起,便于我们使用。
因此第三点:
函数是无序世界,类是有序世界。
C#中所有的类型都是对象类型,类仅支持单继承
System.Object | 所有其他类型的最高类型 |
System.String | 字符串类型 |
System.ValueType | 值类型的基类 |
System.Enum | 枚举类型的基类 |
System.Array | 所有数组类型基类 |
System.Delegate | 所有委托类型基类 |
System.Exception | 所有异常类型基类 |
数据成员 | 常数 |
字段 | |
函数成员 | 方法 |
属性 | |
事件 | |
索引器 | |
运算符 | |
实例构造函数 | |
静态构造函数 | |
析构函数 |
相关文章推荐
- 进入面向对象的世界:类就是代码,对象是内存。
- 进入面向对象的世界:类就是代码,对象是内存。
- 进入面向对象的世界:类就是代码,对象是内存。
- 黑马程序员——Java的内存世界:面向对象的概念以及对象的建立过程
- 编写高质量代码改善C#程序的157个建议——建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间
- 6 Java基础语法(二维数组,参数传递与数据加密问题)&面向对象(面向对象思想,类与对象及使用,对象内存图解)
- 面向对象--多继承&派生类对象内存布局分析&各基类指针所指向的位置分析(解决面试宝典第四版P147问题)
- 危险代码:内存中的Java类和对象为何变得不安全—Part2
- 代码大全2笔记-欢迎进入软件构建的世界
- 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(4)
- [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
- 不安全的代码: 教你“随心所欲”地在内存中操作Java的类和对象(1)
- 虚函数的特性--内存结构的研究, 对象有虚表的反而多占内存了(多4字节即一个指针),函数是预告编译在代码区
- 从0到1起步-跟我进入堆外内存的奇妙世界
- 面向对象:你出现之前整个世界都是你,你出现之后你就是整个世界
- 从0到1起步-跟我进入堆外内存的奇妙世界
- Java代码中new对象的过程在jvm内存中的操作
- 危险代码:内存中的Java类和对象为何变得不安全—Part1
- 回顾JavaSE(4)-String(3)四行代码分析String字面值对象和构造方法对象的内存分配