29final关键字
生活随笔
收集整理的這篇文章主要介紹了
29final关键字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.final關鍵字修飾類
MyClass.java
package Final; /* 當final關鍵字用來修飾一個類的時候,格式: public final class 類名稱{} * 含義:當前這個類不能有任何的子類。(太監類)但是會有父親。類內的內容不變,正常寫不能用一個final類作為父類 注意:一個類如果是final的,那么其中所有的成員方法都無法進行覆蓋重寫(因為沒兒子) * */ public final class MyClass /*extends Object*/ {public void method() {System.out.println("方法執行");} }2.final關鍵字修飾成員方法
Fu.java
package Final;/* * 當final關鍵字用來修飾一個方法的時候,這個方法就是最終方法,也就是不能被覆蓋重寫。 * 格式: * 修飾符 final 返回值類型 方法名稱(參數列表){ * //方法體 * } * * 注意事項: * 對于類、方法來說,abstract關鍵字和final關鍵字不能同時使用(不能同時修飾一個方法或者類),因為矛盾 * 因為abstract必須沒有方法體,必須被重寫; * final要求不能被重寫。 * */public class Fu {public final void method() {//有final,就不能被子類中覆蓋重寫System.out.println("父類方法");} }Zi.java
package Final;public class Zi extends Fu{ // public void method() { // System.out.println("子類方法"); // } }3.final關鍵字修飾局部變量
Student.java
package Final;public class Student {String name;public Student() {}public Student(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;} }Demo01Final.java
package Final; /* * final關鍵字代表最終、不可改變的 * * 常用四種用法: * 1。可以用來修飾類(這個類不能有任何子類。) * 2。可以用來修飾一個方法(不能被覆蓋重寫) * 3。還可以用來修飾一個成員變量(不能改變) * 4。還可以用來修飾一個局部變量(變量值不能被改變) * */ public class Demo01Final {public static void main(String[] args) {int num = 10;num = 20;System.out.println(num);//一旦使用final用來修飾局部變量,那么這個變量就不能被更改//一次賦值,終生不變final int num1 = 30;System.out.println(num1);//正確寫法!只要保證有唯一一次賦值即可final int num3;num3 = 30;//對于基本類型來說,不可變說的是變量當中的數據不可改變//對于飲用類型來說,不可變的說的是變量當中的地址值不可改變。Student stu1 = new Student("hh");System.out.println(stu1);System.out.println(stu1.getName());stu1 = new Student("zz");System.out.println(stu1);//相比上一個地址值發生改變System.out.println(stu1.getName());final Student stu2 = new Student("xx");System.out.println(stu2);System.out.println(stu2.getName());//stu2 = new Student("tt");地址值不可改變stu2.setName("tt");//地址值所指向的內容可以改變System.out.println(stu2.getName());} }4.final關鍵字修飾成員變量
Person.java
package Final; //對于成員變量來說,如果使用final關鍵字修飾,那么這個變量也照樣是不可變 //1。由于成員變量具有默認值,所以用了final之后必須手動賦值,不會再給默認值了 //2。對于final的成員變量,要么使用直接賦值(默認直接賦值為null),要么通過構造方法賦值(二者選其一) //3.必須保證類當中的所有重載的構造方法,都最終會對final的成員變量進行賦值。 public class Person {//private final String name;private final String name;/* = "鹿晗";*/public Person(String name) {this.name = name;}public Person() {name = "關曉彤";}public String getName() {return name;}// public void setName(String name) { // this.name = name; // } }總結
以上是生活随笔為你收集整理的29final关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 28笔记本USB接口案例分析
- 下一篇: 30四种权限修饰符