Java基础笔记总结(3)-面向对象编程(成员与局部变量、匿名对
面向对象:不断创建对象,使用对象并指挥其做不同的事情。
面向对象涉及就是管理和维护对象之间的关系
面向对象的三大特征:封装,继承,多态
类代表一组相关的属性和行为的集合,对象该类事物的具体体现
成员变量 事物的属性
成员方法 事物的行为
创建对象,调用属性并且赋值
一个对象的内存图 在内存中的方法区中,方法区就是代码仓库
1、编译文件存储在方法区中
2、调用主方法,主方法进栈
3、将类加载到内存方法区中
4、在main栈中创建对象,并且在堆中进行初始化,设置地址,堆中包含相关的属性
5、属性赋值修改堆中的对象
6、方法进栈,根据栈中地址去找堆中的对向值
两个对象内存过程
1、将编译文件加载到内存中
2、主方法进栈
3、在方法去中生成对象的字节码文件Car.class
4、栈中创建对象,堆中初始化,设置默认初始化值
5、属性赋值修改堆中对象值
6、方法进栈运行,运行完弹栈
如果没有任何引用指向该对象,该对象就会变成垃圾,Java中有完善的垃圾回收机制
----------------------------------------------------------------------------------------------
匿名对象的概述和应用
new 类名().方法()
匿名对象的应用场景,匿名对象只适合对方法的一次调用,若调用多次会产生多个对象,不如有名对象
匿名对象属性赋值没有任何意义,匿名对象可以当做参数传递
----------------------------------------------------------------------------------------------
成员变量和局部变量的区别
1、成员变量在类中方法外,局部变量在方法中定义或方法声明上
2、成员变量在堆内存,属于对象,局部变量在栈内存,属于方法
3、生命周期不同,成员变量随着对象的创建而存在,对象消失就消失,局部变量随方法调用而存在,随方法调用完毕而结束
4、成员变量有默认初始化值,而局部变量没有,必须定义
注意 局部变量和可以和成员变量同名,在方法中才去的是就近原则
基本数据类型变量:byte short int long boolean char double float
引用数据类型变量:类,接口,数组,枚举
------------------------------------------------
封装:隐藏实现细节,仅提供对外公共访问方式
private 是一个权限修饰符,仅可修饰成员变量和成员方法,被修饰的成员只能在本类中访问,设置set和get方法获取
关键字this 代表当前对象的引用,用于区分成员变量和局部变量