一、什么是面向对象
面向对象是一种思维
1、面向对象和面向对象的区别:
面向过程:直面实现步骤
面向对象:不关注对象如何实现,只关注对象本身,是依托于面向过程的
2、面向对象的优点:
将复杂的问题简单化,更贴近现实生活中人类的思维角度
3、类和对象的关系:
先有类才有对象,跟随类创建对象。
二、测试类:
1、导包
为了指明要使用类型的位置
同包下的类和java.lang下的类不需要导包
2、创建对象
new关键字具有创建对象的能力
引用数据类型 变量|引用 = new 引用数据类型();
3、注意点:
(1)、基本数据类型的变量 = 右边为数据值
(2)、引用数据类型的变量 = 右边为对象
(3)、成员变量只声明不赋值存在默认值
三、堆栈存储数据的特点
栈中存储数据的特点
1、方法运行时期数据的位置,有序的,先进后出,后进先出
2、方法执行完毕马上释放内存
堆中存储数据的特点:
1、无序的,堆中存储对象|数据,根据对象地址找到对象,根据垃圾回收机制清理对象垃圾
四、对象的内存分析:
1、编译CarTest,Car类型,编程Class文件. 2、Class文件加载到内存方法区中 3、main方法压栈执行,在栈中为当前的main方法开辟栈帧! 4、执行main方法中的代码 5、执行new Car),创建Car类型的对象 new关键字创建对象的步骤: • (1)在堆中为对象开辟,同时成员变量跟随对象进入堆内存 • (2)调用构造器为对象初始化信息并附默认值 • (3)将地址返回给引用 6、引用car存储=右边所new对象的地址0x001 Car car = 0x001; car执行0x001对象 car代表0x001对象 7、通过car为对象的属性赋值,修改的为对象堆内存中存储的属性的值 8、调用功能car ,run()方法压栈执行 在成员方法中run()所有的成员变量,默认指代调用成员方法的对象9.run()执行完毕,马上弹栈释放内存 10、继续执行主方法 11、main执行完毕,弹栈释放内存空间
如何判断是否需要参数:
看方法实现过程中有没有可变的,未知的来判断是否需要参数。
五、构造器:
作用:为对象初始化信息(为对象的成员变量赋值)
使用:跟随new关键字一起使用,不能单独调用
定义:修饰符 类名(参数列表){ }
注意:
(1)构造机不能定义void|返回值
(2)也是特殊的方法,具有方法重载的特性--->构造机的重载
(3) 如果一个类中没有显示的定义构造器,编译器会自动默认提供一个空构造(没有参数的构造器)
(4)如果存在显示定义的构造器,编译器不会再为类型提供任何的构造器
(5)构造器中可以存在return,根据需求定义,实现提前结束构造器,但不能带出返回值



