面向对象
什么是面向对象?
面向对象是相对面向过程来谈的,比如生活中骑着自行车去参加一场面试,但是途中自行车坏了,这个时候有两种思想解决这个问题
面向过程:会分步骤去做,找修车工具,检查损坏处,修补损坏处
面向对象:找一个修车师傅,让他帮我完成这个操作
面向对象有什么特点?
1、让复杂的问题简单化
2、让我们从执行者变成指挥者
3、贴近人思考问题的思想
面向对象的特征?
封装、继承、多态
面向对象是如何设计的?
1、维护对象和类之间的关系
2、寻找对象,建立对象,使用对象
什么是类和对象?
类:是一类事物抽象的集合 对象:是以一类事物为模板,是具体的事物
成员变量和局部变量的区别?
1、书写位置
成员变量:在类中,在方法外
局部变量:在方法和方法的声明中
2、内存中的位置
成员变量:在堆中
局部变量:在栈中
3、初始值
成员变量:堆中有默认值
局部变量:需要手动定义初始值,才能使用
4、声明周期
成员变量:随着对象的建立而建立,随着对象的死亡而死亡
局部变量:随着方法的入栈而建立,随着方法的出栈而死亡
封装是什么?
封装就是将属性和方法的具体实现隐藏起来,提供公共的访问方式
private是什么?
1、是系统的关键字
2、是权限修饰符
3、加在属性前,代表属性是私有的
4、是封装的一种表现形式
5、修饰后的属性,在本类中可以访问,在类外不可以访问
什么是this关键字?
代表的是所在函数所属对象的引用
什么是匿名对象?
没有名字的对象
匿名对象有什么作用?
在需要建立对象但是只访问一次函数中的属性或者方法的时候使用,减少代码
匿名对象的好处?
节省代码,方便使用
其他知识点
1、类是可以重名的,但是不在同一个包下,并且在main函数中建立对象的时候需要写出前面的报名建立对象
2、Java中的基本单位是类
3、通过看new操作执行了几次,就可知道有多少对象
4、一个类文件夹下只允许一个public文件,允许多个非public文件
建立一个对象时候内存的变化过程?
建立两个对象,存在第三个引用时候内存的变化图?