final关键字:- 关键字是最终的意思,可以修饰成员方法,成员变量,类
final关键字修饰的基本类型变量就不能在改变了,也就是说,final修饰的基本类型变量变成了一个常
public class Test{
final int age=10;
age=20;
}
这样的话第三行就会报错,因为age是int类型,是基本数据类型,被final修饰导致变成了一个常量,而常量值是不能改变的
final修饰引用类型的变量是,我们从代码来看
public class Student {
public int age = 20;
}
/*
测试类
*/
public class FinalDemo {
public static void main(String[] args) {
final Student s = new Student();
s.age = 100;
System.out.println(s.age);
// s = new Student();
}
}
运行结果:100;
因为final修饰引用类型变量,引用类型本质上记录的是地址值,所以导致,引用类型的地址值不能的改变,而当我们给,s在new一个对象时,代码就会报错,而地址值不变,并不会影响到地址里边的内容是否改变.所以final修饰引用类型变量,是让地址值不变.
final修饰方法时这个方法就不能被子类所重写
public class Fu{
public final void show(){
}
}
public class Zi{
@Override
public void show(){
}
}
同样的第六行子类中重写方法就会报错,因为final修饰的方法不能被重写
final修饰类的时候,表示这个类是最终类,最终类不能成为父类,也就是不能被继承
写代码的话extends后面的类名就会报错.
static关键字:
static关键字是静态的意思,可以修饰成员方法,成员变量
static关键字作用就是当一个成员(成员变量,成员方法)被所有对象所共享时,为了方便我们就要用static修饰,当用static修饰时,推荐使用类名.直接来调用赋值,并且被所以对象共享,我们只用赋值一次即可,不用再new一个对象,赋值一次.
static修饰的方法只能访问静态方法而不能访问动态的方法