Value{static int c=0;static void inc(){c++;}}class Count{public static void prt(String s){System.out.println(s);}public static void main(String[] args){Value.v1 = new Value();Value.v2 = new Value();prt("v1.c=" + Value.c + " v2.c=" + Value.c);Value.inc();prt("v1.c=" + Value.c + " v2.c=" + Value.c); }} 在这个例子中,`Value.c` 是静态变量,这意味着无论创建了多少 `Value` 类的实例,`c` 只会有一份存储空间,所有的实例都会共享这个值。在 `main` 方法中,首先输出 `v1.c` 和 `v2.c` 的初始值,因为此时还未调用 `inc` 方法,所以两个值都为0。接着调用 `inc` 方法增加 `c` 的值,然后再次输出 `v1.c` 和 `v2.c`,这时它们都变成了1,显示了静态变量的共享特性。 二、this 关键字 `this` 关键字在 Java 中用于引用当前对象。当你在一个方法或构造器中使用 `this`,它指的是调用该方法或构造器的那个对象。例如: ```java class Person { String name; Person(String name) { this.name = name; // 使用 this 引用当前对象的 name 属性 } void display() { System.out.println("Name: " + this.name); } } ``` 在这个例子中,`this.name` 表示当前 `Person` 对象的 `name` 属性,避免了属性名与参数名冲突的情况。 三、super 关键字 `super` 关键字用于访问父类的成员,包括字段和方法。当你在子类中重写父类的方法或者想要引用父类的字段时,可以使用 `super`。例如: ```java class Parent { int age; Parent(int age) { this.age = age; } } class Child extends Parent { Child(int age) { super(age); // 调用父类的构造器 } void display() { System.out.println("Age from child: " + super.age); } } ``` 在这个例子中,`Child` 类继承了 `Parent` 类,并在构造器中使用 `super(age)` 调用了父类的构造器。在 `display` 方法中,`super.age` 访问了父类的 `age` 字段。 四、final 关键字 `final` 关键字有三种用法:修饰类、方法和变量。 - **修饰类**:如果一个类被声明为 `final`,则不能有子类。 - **修饰方法**:一个 `final` 方法不能被子类重写。这保证了子类不能改变父类中特定方法的行为。 - **修饰变量**:`final` 修饰的变量一旦赋值后就不能再改变,可以是实例变量或静态变量。如果是类的静态常量,通常配合 `public` 一起使用,构成常量池的一部分。 例如: ```java final class Singleton { // 确保此类不能被继承 private static final Singleton INSTANCE = new Singleton(); // 单例模式,实例化后不能再创建其他实例 private Singleton() {} // 私有构造器 public static Singleton getInstance() { return INSTANCE; } } class Base { final int constant = 42; // 常量,不能被修改 final void method() {} // 不能被重写 } ``` 总结,`static`、`this`、`super` 和 `final` 这四个关键字在 Java 中扮演着关键角色,它们分别用于处理类级别的成员、对象引用、继承关系和常量的定义。理解并熟练掌握这些关键字的用法是 Java 编程的基础。在实际编程中,合理使用这些关键字可以帮助编写出更加清晰、高效的代码。
剩余22页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之28-implement-strstr.c
- C语言-leetcode题解之27-remove-element.c
- C语言-leetcode题解之26-remove-duplicates-from-sorted-array.c
- C语言-leetcode题解之24-swap-nodes-in-pairs.c
- C语言-leetcode题解之22-generate-parentheses.c
- C语言-leetcode题解之21-merge-two-sorted-lists.c
- java-leetcode题解之Online Stock Span.java
- java-leetcode题解之Online Majority Element In Subarray.java
- java-leetcode题解之Odd Even Jump.java
- 计算机毕业设计:python+爬虫+cnki网站爬
评论0