目录
1.static
1.1static的特征
- 所有static关键字修饰的都是类相关的,类级别的,采用 类名. 访问
- static修饰的变量:静态变量
- static修饰的方法:静态方法
1.2实例变量与静态变量
如果这个类的所有队形的某一个属性值一样,建议定义为类级别特征,即静态变量,在方法区中只保留一份,节省内存开销
静态变量在类加载是初始化,存储在方法区,不需要new对象,静态变量的空间就开出来了
1.3实例方法与静态方法
- 若方法必须有对象去出发,那么该方法定义为实例方法(在方法体中直接访问实例变量的为实例方法)
- 工具类一般是static的,不需要new对象,直接采用 类名. 访问,及其方便
注意:
- 实例的一定要采用“引用.” 来访问
- 静态的建议使用“类名.”来访问,使用“引用.”也行,但会误导人以为是实例的属性或方法
Chinese c1 = new Chinese();
c1=null;
c1.country;//静态变量不需要对象的存在,代码在运行时为Chinese.ciuntry
- 空指针异常发生在:“空引用”访问“实例相关”的属性和方法
1.4静态代码块
- 定义
static{
java语句;
java语句;
}
- 静态代码块的作用
(1)不常用
(2)SUN提供的特殊事件点(类加载时机):记录类加载的日志信息、初始化操作、具体的开发需求…
(3)在方法其存放:类的信息,字节码信息,代码片段(静态变量) - 静态代码块与静态变量的执行顺序:代码书写的先后顺序(未定义静态变量,却在静态代码块中访问【非法向前引用】)
- 实例代码块
{
java语句;
java语句;
}
在构造方法执行前,自动执行实例语句块中的代码,这一特殊时期为“对象构造时机”
2.this
2.1this的特征
- this是一个关键字,小写
- this是一个变量、引用。保存当前对象的内存地址,指向自身,代表当前对象,存储在堆内存中的对象内部
- this只能使用在实例方法中,是调用这个实例方法,this就是谁
2.2this是否是否可以省略
- 省略的话,代表当前对象的某个属性 this.name
- 不可省略,在实例方法中,或者构造方法中,为例区分实例变量和局部变量 this. 不能省略
2.2this的使用
- 使用在实例方法中
- 不能使用在静态方法中
- 使用在构造方法中,通过当前的构造方法区调用另一个本类的构造方法,语法格式 this(实际参数列表)
- this.()的作用:代码复用。注意点:对this的调用必须是构造其中的一个语句,且只能调用本类中的另一个构造方法
public Date() {
this(1970,1,1);
}
public Date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
3.总结
类体{
实例变量;
实例方法;
静态变量;
静态方法;
构造方法;
静态代码块;
实例代码块;
方法(){
int i = 100;
//局部变量;
}
}
传送门
上一章:JavaSE基础 第十章 封装
下一章:JavaSE基础 第十二章 继承