Java关键字详解之final static this super的用法
在Java中,关键字是一些被语言赋予了特殊含义的保留字。这些关键字决定了Java编程语言的语法结构和编译过程中的数据处理方式。本文将详细讲解三个Java关键字:final、static、this和super的用法,并附带两条示例说明。
Final关键字
Final表示“最终的,不可改变的”,这个关键字可以用来声明变量、方法和类。使用Final关键字修饰的变量只能被赋值一次,即不可更改。使用Final关键字修饰的方法不能被子类重写。使用Final关键字修饰的类不能被继承。下面是两个使用Final关键字的示例:
示例一
public class Demo {
// 声明一个成员变量并使用Final关键字修饰
final int MAX = 100;
public void test() {
// 尝试修改MAX的值,会编译错误
MAX = 200;
}
}
在上面的示例中,声明了一个成员变量MAX,并使用Final关键字修饰。在test方法中尝试修改MAX的值,会编译错误。
示例二
public final class Demo {
public void test() {
System.out.println("Demo");
}
}
public class Test extends Demo {
// 尝试继承Demo类,会编译错误
}
在上面的示例中,使用Final关键字修饰了Demo类。在Test类中尝试继承Demo类,会编译错误。
Static关键字
Static表示“静态的”,这个关键字可以用来修饰变量、方法和类。使用Static关键字修饰的变量属于类级别,即类的所有实例共享一个变量。使用Static关键字修饰的方法属于类级别,可以直接通过类名调用。使用Static关键字修饰的类属于静态内部类。下面是两个使用Static关键字的示例:
示例一
public class Demo {
// 声明一个静态变量并使用Static关键字修饰
static int count = 0;
public Demo() {
// 每次创建Demo实例时count加1
count++;
}
public static int getCount() {
// 静态方法中可以直接调用静态变量
return count;
}
}
public class Test {
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
Demo d3 = new Demo();
System.out.println("Demo实例的数量为" + Demo.getCount()); // 输出:Demo实例的数量为3
}
}
在上面的示例中,声明了一个静态变量count,并使用Static关键字修饰。每次创建Demo实例时count加1。静态方法getCount中可以直接调用静态变量。在Test类中创建3个Demo实例后输出Demo实例的数量,其值为3。
示例二
public class Demo {
public static class InnerClass {
public void test() {
// 静态内部类中可以直接调用Demo类的静态方法
System.out.println("调用Demo类的静态方法");
}
}
}
public class Test {
public static void main(String[] args) {
Demo.InnerClass ic = new Demo.InnerClass();
ic.test(); // 输出:调用Demo类的静态方法
}
}
在上面的示例中,使用Static关键字修饰了Demo类的内部类InnerClass。在Test类中创建InnerClass实例后,可以直接调用该类中的test方法。
This关键字和Super关键字
This和Super两个关键字都是表示引用当前对象的,但所指的对象不同。This关键字表示当前对象本身,Super关键字表示当前对象的父类对象。下面是两个使用This和Super关键字的示例:
示例一
public class Demo {
private int num;
public Demo(int num) {
this.num = num;
}
public void print() {
System.out.println("num的值为" + this.num); // 输出:num的值为10
}
}
public class Test {
public static void main(String[] args) {
Demo d = new Demo(10);
d.print();
}
}
在上面的示例中,通过This关键字引用当前对象本身,并输出num的值为10。
示例二
public class Animal {
public void eat() {
System.out.println("动物会吃东西");
}
}
public class Cat extends Animal {
public void eat() {
super.eat();
System.out.println("猫吃鱼");
}
}
public class Test {
public static void main(String[] args) {
Cat c = new Cat();
c.eat(); // 输出:动物会吃东西\n猫吃鱼
}
}
在上面的示例中,使用Super关键字引用当前对象的父类对象,并在子类中重写了父类的eat方法,在子类的eat方法中先调用父类的eat方法,再输出猫吃鱼。在Test类中创建Cat实例后输出内容,其值为“动物会吃东西\n猫吃鱼”。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java关键字详解之final static this super的用法 - Python技术站