时间:2018-07-22
作者:魏文应
一、感性的认识
首先,结合现实,先有个感性的认识。有一种饼 叫做 印饼,看下面的图:
什么是类? 上面的印饼模具,每个孔印出的饼 样式不一样,有花的,有鱼的。我们把 从不同孔 印出的饼,看做是 不同类型的饼。饼上刻花、刻太阳花、刻一朵花,满足这种类型 的印饼,我们把它们 归为一类。
什么是实例? 实例是 相对类 来说的。从 某个孔 中,印出很多个饼。这些饼,就是在 “饼上刻花、刻太阳花、刻一朵花” 这些规定 下,印出的 实实在在的例子,简称 实例。某个孔出来的,就叫做某个孔实例呗,比如:花饼1是花孔的一个实例,花饼2也是花孔的一个实例,鱼饼1是鱼孔的一个实例。给印 印饼这件事,起一个文绉绉的名字,就叫做 类的实例化。
什么是对象? 我要吃一个印饼,我总不能说 “ 给我来一个花孔的实例 ” 吧!我肯定是说“ 给我来一个带花的印饼 ”。可是印饼只包括印饼啊,我想把人啊、猫啊、狗啊等等,都包含进来,怎么办?把印饼换一个词吧,让它包括更多东西,“给我来个饼” -> “给我来个吃的” -> "给我来个东西"。感觉东西这个词范围还不够大,后来就换成 对象 这个词来表示,这样范围就比较大了。
什么是引用? 你妈妈把印饼收藏起了,并用纸记下印饼的位置,每一张纸相对应的写着一个印饼的位置。每一张纸上 写的位置信息 就是一个引用:“ 引 导你去使 用 印饼!!!”。
二、使用代码说明
下面定义两个类:
class HuaBing{
String name = "花饼";
int = 2;
}
class YuBing{
String name = "鱼饼";
int = 1;
}
下面,根据类描述的信息,创建类的实例:
new HuaBing();
new HuaBing();
new YuBing();
new YuBing();
上面,根据 类描述的信息,就像 一个模子里印出来一样 ,在内存中创建了 类的实例。这些实例可以创建很多个。就像电视机、手机、鞋子这些加起来,被统称为 东西 一样,在内存中,把 所有的类的实例 组成的这个集合 ,统称为 对象。
但是,这些对象 在内存中的哪里呢? 这时,我们就需要一个变量,存储对象的位置信息,这个变量就叫做 引用变量 ( 引 导你找到并使 用 它):
HuaBing h = new HuaBing();
HuaBing h
就是定义一个 HuaBing 类型 的引用变量,这个 h 引用变量存储了 new HuaBing()
这个对象的位置信息:
三、总 结
通过描述,我们可以发现,现实中还有很多例子可以拿来比喻:类 就像画在纸上的 设计图,实例 就像用一份设计图造出来的 汽车,类的实例化过程 就是 设计图变成汽车的过程。所有类型的汽车 组成的集合,统称为 对象。 一辆汽车生产出来,用一张纸记录这辆车存储在哪,这张纸被称为 引用变量,里面存储的位置信息被称为 引用。