JAVA常见关键字(final;static;this;super)
Posted 奔跑的路奇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA常见关键字(final;static;this;super)相关的知识,希望对你有一定的参考价值。
final
final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点:
- final修饰基本类型,只能有一次赋值的机会。一旦存储了一个值,则不让再次改变,相当于一个常量。
- final修饰引用类型,则变量内的地址引用不让改变。
- final修饰属性,属性如果没有赋值,有默认值存在的;用final修饰后,必须给属性赋初始值。
- final修饰方法,表示该方法是最终的方法,不可更改;不能被子类重写final修饰方法,表示该方法是最终的方法,不可更改;不能被子类重写。
- final修饰类,表示本类不能被继承 。
static
static的特点
特点: 1 静态元素在类加载的时候就初始化了
2 静态元素存储在方法区的静态元素区中
3 静态元素只加载一次,全部类对象及类本身调用
4 静态元素可以通过类名直接访问(属性类的,不属于对象),
5 类加载的时候,被static修饰的就加载了,先于对象(new Person();)加载
6 静态元素区垃圾回收器无法管理
7 非静态成员(堆内存对象里)可以访问静态成员(存在静态元素区中),
8 静态成员(属于类)不可以访问非静态成员(属于对象)
9 静态元素中不可以使用this或super关键字(this和super是属于对象的)
- 修饰成员变量和成员方法: 被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,并且可以通过类名调用。被static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的方法区。调用格式:类名.静态变量名 类名.静态方法名()
- 修饰代码块: 静态代码块定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。 该类不管创建多少对象,静态代码块只执行一次.
- 修饰类:static修饰类的话只能修饰内部类。不能使用任何其他类的非static成员变量和方法。
this
1,代替的是某个对象-》当前调用属性或方法时的那个对象,不一定是当前类
2,this可以调用属性,方法;
3,this可以调用构造方法(this();),但只能在另一个构造方法体内,只能在程序的第一行
例如:
class Test{
Employees[] employees;
void manageEmployees() {
int empLenght= this.employees.length;
System.out.println( empLenght);
this.play();
}
void play() { }
}
- this.employees.length:访问类Manager的当前实例的变量。
- this.play():调用类Manager的当前实例的方法。
super
代替的是当前执行方法的对象的父类对象
public class Big{
protected int num;
protected showNum() {
System.out.println("num= " + num);
}
}
public class Small extends Big{
void bar() {
super.num= 10;
super.showNum();
}
}
- 在上面的例子中,Small 类访问父类成员变量 num并调用其其父类 Super 的 show() 方法。
使用 this 和 super 要注意的问题:
- 在构造器中使用 super() 调用父类中的其他构造方法时,该语句必须处于构造器的首行,否则编译器会报错。另外,this 调用本类中的其他构造方法时,也要放在首行。
- this、super不能用在static方法中。因为this和super是属于对象的,而对象的加载要依赖于类,所以只有当类加载了,对象才会加载。
最后,如果有问题,希望指正,一起进步。
以上是关于JAVA常见关键字(final;static;this;super)的主要内容,如果未能解决你的问题,请参考以下文章