1. 类和对象
1.1 什么是类?
类是对某一事物的统称,是一个集合,例如人类,动物等等,类之中可以有对该集合的属性描述以及行为描述
1.2 什么是对象?
对象是类当中某一个唯一,独立,特殊的个体
对象的创建:类名 对象名 = new 构造方法(可能需要的参数);
1.3 构造方法
功能:初始化当前类对象中保存的成员变量数据。
一个类当中没有显式的声明构造方法的时候,Java编译器会默认的为其提供一个无参的构造方法,供其使用。
如果在一个类当中显式的声明了构造方法,不管式无参还是有参,Java编译器都不会再提供对应的构造方法。
在一个类当中,构造方法可以有多个,根据参数个数,数据类型的不同,来完成不同的功能。(使用到了方法重载的概念)。
.但是构造方法的参数类型以及个数不能同时相同,哪怕是两个数据类型相同的不同数据也不可以,因为编译器只看数据类型,而不看具体的类型名。
1.4 重载
定义:方法的方法名相同,参数个数、数据类型不同但不能同时相同,且发生在同一个类内。
优点:简化了开发的压力,简化了程序员的记忆压力。
作用: 通过调用同一个方法名,传递不同的参数来完成不同的功能。
1.5 成员变量与局部变量的对比
作用: 成员变量是对该类对象的属性描述,描述当前类拥有哪些属性;而局部变量是用来在方法或代码块执行过程中用来保存必要的数据。
位置: 成员变量定义在class大括号内部,以及其他大括号外部;而局部变量定义在方法括号或者代码块括号之内。
初始值: 成员变量在未经过构造方法为其初始化赋值之前,为对应数据类型的
零值;局部变量未赋值不能使用,不能参与除赋值操作之外的任何操作。
作用域: 成员变量存储在堆区的类对象内存空间内,所以持有当前类对象的引用的变量在何处,成员变量在该处皆有用;局部变量作用域有且只在当前大括号内。
生存周期:成员变量随着类对象的创建开始,被GC机制回收时而结束;局部变量生存周期从定义位置开始,到当前作用域的大括号结束。
1.6 零值
基本数据类型:
byte\short\int : 对应零值为0;
long : 对应零值为0L;
float : 对应零值为0.0F;
double : 对应零值为0.0;
char : 对应零值为 ‘\0’;
boolean : 对应零值为false;
引用数据类型:
所有的引用数据类型的零值全部为null,代表空引用。
1.7 匿名对象
格式:new 构造方法(所需要的参数);
用途:
1.使用匿名对象直接调用类内的成员方法。
2.匿名对象可以直接作为方法的参数。
注意: 不要使用匿名对象操作成员变量,因为可能会有误会,每次匿名对象的创建都是创建一个新的类对象内存空间,可能会导致数据的丢失。
优点:
1.在使用之后,会立即被GC处理。
2.解决了内存浪费的问题,减少了栈区没必要的浪费,提高效率,简化代码书写。
从内存角度分析匿名对象的特点:
通过对内存的观察可以发现,使用类对象实际上使用的就是保存在堆区的类对象的内存空间,栈区中保存的只是对堆中内存的引用,那么当我们只需要暂时的使用某个类中的成员方法时,可以使用匿名对象,直接操作保存在堆区的内存空间,从而节省下了栈区中的那一部分内存空间,减少了内存的没必要浪费。
作者:℡ㄨ瞎扯蛋ふ
JAVA
对象
类和对象