类与对象
1.面向对象简介
封装性:内部的操作对外部不可见;内部操作不可直接使用时是安全的
继承性:在已有结构的基础上继续进行功能的扩充;
多态性:继承的基础上,类型的转换处理;
2.类与对象简介
类:某一类事物的共性的抽象概念;
对象:一个具体的产物;
3.类与对象的定义及使用
声明对象:类名称 对象名称=null;
实例化对象:对象名称 = new 类名称();
调用类中的属性:实例化对象.成员属性;
调用类中的方法:实例化对象.方法名称();
4.对象内存分析
类属于引用数据类型,要进行内存管理;
堆内存:保存对象的具体信息,在程序中堆内存的开辟是通过new完成的。
栈内存:保存一块堆内存的地址(简化为对象名称),通过地址找到堆内存,而后找到对象内容。
所有的对象在调用类中的属性和方法时,必须要进行实例化,否则会出现NullPointerException(空指向异常),只有引用数据类型会存在这个问题,基本数据类型就是一个数值,不会存在这个问题。
5.对象引用分析
类为引用数据类型,一定会存在内存的引用传递:同一块引用内存(堆内存)空间,可以被不同的栈内存指向,也可以更换指向。
Person per2 = per1; //引用传递,per1和per2属于不同的栈内存,指向同一块堆内存
除了发生在以上主方法中,还可以发生在其他方法中:
change(per); //主方法中
public static void change(Person temp){temp.age="80";}
方法执行完毕后,temp断开连接。
6.引用与垃圾产生分析
引用传递处理不当会产生垃圾。垃圾即没有任何栈内存指向的堆内存空间,垃圾过多会影响GC的处理性能,在实际开发中,垃圾越少越好。
Person per1 = new Person();
Person per2 = new Person();
per2 = per1; //per2原本指向的堆内存成为了垃圾
一个栈内存只能保存一个堆内存地址,若发生更改,则原本的地址数据将从栈内存中彻底消失。