一、final关键字概述和特点
final的概念:
最终的、最后的
final的作用:
用于修饰类、方法和变量
修饰类:该类不能被继承,该类没有子类;但是可以继承别的类,可以有父类。如:String,System都是用final修饰的类
修饰方法:该方法不能被重写,final 不能与abstract共存
修饰变量:最终变量,即常量,只能赋值一次。(不建议修饰引用类型数据,因为仍然可以通过引用修改对象的内部数据,意义不大。)
二、static的用法之静态成员变量
static的概念:
静态的
static的作用:
用于修饰类的成员(成员变量:类变量、成员方法:类方法)
调用方式:
类名.成员变量名;
类名.成员方法名(参数);
static修饰成员变量:
特点: 被本类所有对象共享
三、static的用法之静态成员方法
静态方法:
静态方法中没有对象this,所以不能访问非静态成员
静态方法的使用场景:
只需要访问静态成员
不需要访问对象状态,所需参数都由参数列表显示提供
案例:定义静态方法,反转数组中的元素
ReverseArray类 部分代码
package Package;
public class ReverseArray {
int num1 = 10; //非静态成员
static int num2 = 20; //静态成员
//静态方法中没有对象this,所以不能访问非静态成员
/*public static void show() {
//System.out.println(num1);——>报错
//System.out.println(num2);——>不报错
}
*/
//需求:定义静态方法,反转数组中的元素
public static void reverse(int[] arr) {
/*
这里只需要完成交换功能就可以了
*/
for(int i = 0;i < arr.length / 2;i++) {
//arr[i]和arr[arr.length - 1 - i]进行交换
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
}
Test类 部分代码:
package Package;
public class Test {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
System.out.println("反转前的数组为:");
for (int i = 0;i < arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
//调用方法:反转数组
ReverseArray.reverse(arr);
System.out.println("反转后的数组:");
for (int i = 0;i < arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}
输出结果: