为什么——要实例化对象?

对象:属性+方法

类是指:描述一种事物的定义,是个抽象的概念
实例指:该种事物的一个具体的个体,是具体的东西

联系

类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。 [1] 

类对象的关系

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。


打个比方:
“人”是一个类。“张三”是人类的一个具体例子

在编程时也是同样的道理,你先自己定义一个“类”,当你需要用时,用“类”的定义来创造一个具体的例子。

用类的定义来创建一个实例,就叫做类的实例化。

举个很简单的例子,你创建了一个老虎的类,老虎那么多,你咋知道是哪只老虎,等你实例化,就定位到某只老虎身上了。这只老虎就有了老虎的共同属性,像体重啊,身长啊,颜色啊。那些属性的属性值就是这只老虎的特征。

 

过程
  Person p = new Person();
  1,JVM会去读取指定路径下的Person.class文件,并加载进内存,
    并会先加载Person的父类(如果有直接父类的情况下)
  2,在堆内存中开辟空间,分配地址。
  3,并在对象空间中,对对象中的属性进行默认初始化
  4,调用对应的构造函数,进行初始化
  5,在构造函数中,第一行会先调用父类中的构造函数进行初始化。
  6,父类初始化完毕后,再对子类的属性,进行显示初始化。
  7,指定构造函数的特定初始化
  8,初始化完毕后,将堆内存中的地址值赋给引用变量。

posted @ 2019-01-04 10:27  山外已有山  阅读(5228)  评论(0编辑  收藏  举报