1,面向对象和面向过程
Java是完全的面向对象的语言。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
过程其实就是函数;对象是将函数等一些内容进行了封装。
2,创建一个对象的时候内存都做了什么
1:先将硬盘上指定位置的Person.class文件加载进内存。
2:执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。
3:在堆内存中开辟一个实体空间,分配了一个内存首地址值。new
4:在该实体空间中进行属性的空间分配,并进行了默认初始化。
5:对空间中的属性进行显示初始化。
6:进行实体的构造代码块初始化。
7:调用该实体对应的构造函数,进行构造函数初始化。()
8:将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)
3,什么是匿名对象,什么时候用匿名对象?
一个对象被new出来,只用一次,或者调用其方法,或者作为参数进行参数传递。如:
new Car().run();// 只对Car的run方法进行调用
new Car().num =5;
system.out.println( new Data() ) // new的data也