第三次学JAVA再学不好就吃翔(part33)--final关键字
生活随笔
收集整理的這篇文章主要介紹了
第三次学JAVA再学不好就吃翔(part33)--final关键字
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
學(xué)習(xí)筆記,僅供參考
文章目錄
- 面向?qū)ο?/li>
- final關(guān)鍵字
- final關(guān)鍵字修飾類,方法以及變量的特點(diǎn)
- final關(guān)鍵字修飾局部變量
- final修飾變量的初始化時(shí)機(jī)
面向?qū)ο?/h2>
final關(guān)鍵字
final關(guān)鍵字修飾類,方法以及變量的特點(diǎn)
- final修飾的特點(diǎn)
- 修飾類,類不能被繼承
- 修飾變量,變量就變成了常量,只能被賦值一次
- 修飾方法,方法不能被重寫
- 舉個(gè)例子(final修飾方法)
class FinalTest {public static void main(String[] args) {Son s = new Son();s.print();}
}class Father {public final void print() {System.out.println("Father");}}class Son extends Father {public void print() {System.out.println("Father");}
}
- 修飾類,類不能被繼承
- 修飾變量,變量就變成了常量,只能被賦值一次
- 修飾方法,方法不能被重寫
報(bào)錯(cuò):
---------- javac ---------- FinalTest.java:17: 錯(cuò)誤: Son中的print()無(wú)法覆蓋Father中的print()public void print() {^被覆蓋的方法為final 1 個(gè)錯(cuò)誤Output completed (4 sec consumed) - Normal Termination- 舉個(gè)例子(final修飾類)
報(bào)錯(cuò):
---------- javac ---------- FinalTest.java:16: 錯(cuò)誤: 無(wú)法從最終Father進(jìn)行繼承 class Son extends Father {^ 1 個(gè)錯(cuò)誤Output completed (5 sec consumed) - Normal Termination- 舉個(gè)例子(final修飾變量)
報(bào)錯(cuò):
---------- javac ---------- FinalTest.java:12: 錯(cuò)誤: 無(wú)法為最終變量NUM分配值NUM = 20;^ 1 個(gè)錯(cuò)誤Output completed (4 sec consumed) - Normal Terminationfinal關(guān)鍵字修飾局部變量
用final修飾的局部變量如果是基本類型,則它的值不能被改變;
用final修飾的局部變量如果是引用類型,則它的地址值不能被改變,但對(duì)象中的屬性可以改變。
- 舉個(gè)例子(final修飾基本數(shù)據(jù)類型)
輸出:
---------- javac ---------- FinalTest2.java:4: 錯(cuò)誤: 無(wú)法為最終變量num分配值num = 20;^ 1 個(gè)錯(cuò)誤Output completed (2 sec consumed) - Normal Termination- 舉個(gè)例子(final修飾引用數(shù)據(jù)類型)
報(bào)錯(cuò):
---------- javac ---------- FinalTest2.java:5: 錯(cuò)誤: 無(wú)法為最終變量p分配值p = new Person("李四",24);^ 1 個(gè)錯(cuò)誤Output completed (2 sec consumed) - Normal Termination雖然用final修飾過(guò)后我們不能創(chuàng)建新的對(duì)象,但是可以改變?cè)瓕?duì)象的屬性值:
class FinalTest2 {public static void main(String[] args) {final Person p = new Person("張三",23);p.setName("李四");p.setAge(24);System.out.println(p.getName() + "..." + p.getAge());}}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;} }輸出:
李四...24final修飾變量的初始化時(shí)機(jī)
- 舉個(gè)例子(顯示初始化)
輸出:
10- 舉個(gè)例子(構(gòu)造方法中進(jìn)行初始化)
輸出:
10總結(jié)
以上是生活随笔為你收集整理的第三次学JAVA再学不好就吃翔(part33)--final关键字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win10 UWP版《微信》v1.1正式
- 下一篇: 第三次学JAVA再学不好就吃翔(part