在 Java 中,关键字 "this" 和 "super" 用于在类中访问当前对象或其超类的属性或方法。下面是这两个关键字的用法:
"this" 关键字
"this" 可以用于引用当前对象的属性或方法。
例如:
public class Person { private String name; public Person(String name) { this.name = name; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
在这个例子中,我们使用 "this" 来引用实例变量 name,并且在构造函数中使用 "this" 调用另一个构造函数。
"super" 关键字
"super" 可以用于引用父类的属性或方法。
public class Student extends Person { private int grade; public Student(String name, int grade) { super(name); this.grade = grade; } public void setGrade(int grade) { this.grade = grade; } public int getGrade() { return this.grade; } public void printName() { System.out.println(super.getName()); } }
在这个例子中,我们使用 "super" 调用父类的构造函数,并使用 "super" 引用父类的方法 getName()。
除了上述的基本用法,还有一些其他的应用场景:
在匿名内部类中使用 "this" 和 "super"
在匿名内部类中,如果需要引用外部类的成员变量或方法,可以使用 "this" 关键字,但是如果需要引用父类的成员变量或方法,就需要使用 "super" 关键字。
public class Example { private int value = 10; public void doSomething() { Runnable r = new Runnable() { @Override public void run() { System.out.println(value); // 使用 this 引用 Example 类的 value 成员变量 System.out.println(super.toString()); // 使用 super 引用 Object 类的 toString() 方法 } }; r.run(); } }
在这个例子中,我们创建了一个匿名内部类,并使用 "this" 引用 Example 类的成员变量 value,使用 "super" 引用 Object 类的 toString() 方法。
在静态方法中使用 "this" 和 "super"
静态方法属于类,而不属于对象,因此不能使用 "this" 关键字引用对象的成员变量或方法,但是可以使用 "super" 关键字引用父类的静态成员变量或方法。
public class Example { private static int count = 0; public Example() { count++; } public static int getCount() { return count; } public static void doSomething() { System.out.println(Example.getCount()); // 使用类名引用静态成员变量 count System.out.println(Object.class.getName()); // 使用类名引用 Object 类的 getName() 方法 } }
在这个例子中,我们定义了一个静态方法 doSomething(),使用类名 Example 引用静态成员变量 count,并使用类名 Object 引用 Object 类的 getName() 方法。
总之,关键字 "this" 和 "super" 是 Java 中非常重要的关键字,可以用于访问对象的属性和方法,以及调用父类的构造函数和方法。熟练掌握它们的用法可以帮助程序员编写更加清晰、简洁和可读性高的代码。
原文链接:codingdict.net