Student student
Student是你的类,student是你声明的对象,这个就是对象的声明
然后你再
student=new Student()
这个new的过程就叫实例化
对象声明后是不分配空间的,而这个new的过程给他分配空间
就是把抽象的概念具体化了
比如这个Student是指学生类,用new Student()给他具体指定了student是哪一个学生,把他从一个概念性的学生变成了一个独立个体的学生。概念性的学生有属性,但是属性没有具体的值,实体的学生有属性,同时属性也有具体的值。
这样写当然不同了。这个问题可以通过“类加载”机制来阐述。例如,当你执行该条语句 C c1= new C()时,类,对象以及它们成员加载、初始化的顺序如下:
1、首先加载要创建对象的类及其直接与间接父类。
2、在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块(即static{...})的 执行,在加载时按代码的先后顺序进行。
3、需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行。
4、最后执行构造器,构造器执行完毕,对象生成。
两种写法区别不大,就是顺序不同。一般情况下,Swing创建实例的时候,都是在实例方法(或构造方法)中写。
明白了没
你要买一个苹果,售货员给你一个苹果;你要买一苹果, 相当于 --------- Apple apple = null
这个时候你并没有拿到苹果---------java没有给你申请内存,这个时候apple还什么内容都没有,只是告诉别人apple是个苹果
售货员给你个苹果 ----------apple = new Apple()
这个时候你拿到了苹果 ---------- java给你开辟了空间,并且apple可以使用苹果的特性,比如:apple.getPrice(),apple.getTaste()
这就是apple的实例化