1、最後の概要
-
最終的なキーワードクラス、メソッド、および変数を変更するために使用され、修飾された最終的なクラスを継承することができません。
-
最終的な修正方法を上書きすることはできません。
-
最終的に修正される変数を変更することはできません。
-
最終:最終。
2、最終変更機能
-
変更されたクラス、クラスは継承できません
-
変数を変更する、それが一定になる、それは一度だけ割り当てることができます
-
修正方法、メソッドをオーバーライドすることはできません
class Demo1_Final {
public static void main(String[] args) {
Son s = new Son();
s.print();
}
}
/*final class Father {
public void print() {
System.out.println("访问底层数据资源");
}
}*/
class Son /*extends Father*/ {
final int NUM = 10;
//常量命名规范,如果是一个单词,所有字母大写,如果是多个单词,每个单词都大写,中间用下划线隔开
public static final double PI = 3.14;
//final修饰变量叫做常量,一般会与public static共用
public void print() {
//NUM = 20;
System.out.println(NUM);
}
}
3、最後のローカル変数は、キーワードを修正しました
[2]基本型、値を変更することはできません
[3]参照型、アドレス値を変更することができない、オブジェクトのプロパティを変更することができます
class Demo2_Final {
public static void main(String[] args) {
final int num = 10;
//num = 20;
System.out.println(num);
final Person p = new Person("张三",23);
//p = new Person("李四",24);
p.setName("李四");
p.setAge(24);
System.out.println(p.getName() + "..." + p.getAge());
method(10);
method(20);
}
public static void method(final int x) {
System.out.println(x);
}
}
class Person {
private String name; //姓名
private int age; //年龄
public Person(){} //空参构造
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public void setName(String name) { //设置姓名
this.name = name;
}
public String getName() { //获取姓名
return name;
}
public void setAge(int age) { //设置年龄
this.age = age;
}
public int getAge() { //获取年龄
return age;
}
}
図4に示すように、変数の初期化のタイミングの最終的な変形)
-
ディスプレイの初期化
-
彼は建設が完了したオブジェクトをできるようにするには
class Demo3_Final {
public static void main(String[] args) {
Demo d = new Demo();
d.print();
}
}
/*
* A:final修饰变量的初始化时机
* 显示初始化
* 在对象构造完毕前即可
*/
class Demo {
final int num; //成员变量的默认初始化值是无效值
public Demo() {
num = 10;
}
public void print() {
System.out.println(num);
}
}