Java final修饰符的作用,Java中的final修饰符
1.什么時候可以選擇final修飾符
如果想讓一個類不被其他類繼承,不允許在有子類,這時候就要考慮用到final來修飾。
2.用final修飾的類
首先大家要明白,用final修飾的類是不能被繼承的,下面來看一個錯誤案例。
eg:
final class Penguin
{
}
class SubPenguin extends Penguin
{
}
此時這段代碼的class SubPenguin extends Penguin這行代碼會報錯:
The type SubPenguin cannot subclass the final class :翻譯:該類型SubPenguin不能繼承的最后類
即.Penguin類不能被繼承。
3.用final修飾的方法
eg:
class Penguin
{
public final void print(){}
}
class Subpenguin extends Penguin
{
public void print(){}//錯誤
}
此時這段代碼public void print(){}會報錯,提示錯誤信息:
cannot override the final method from Penguin:翻譯:無法覆蓋企鵝的最后方法
即.print方法不能被子類重寫。
4.用final修飾的變量
用final修飾的變量包括成員變量和局部變量,他們將變成常量,只能賦值一次。
public class Dog
{
final String name="小黃";//用final來修飾狗狗的姓名
public void setname(String name)
{
this.name=name; //錯誤,name不能在被賦值。
}
}
5.使用final修飾符的注意點
final可以用來修飾類,方法和屬性,不能修飾構造方法。
6.用final修飾的引用型變量,變量所指對象的屬性值是否能改變?
首先來看一個簡單的例子
//狗狗類
public class Dog
{
String name;//狗狗的姓名
//帶參構造,給狗狗的名字賦值
public Dog(String name)
{
this.name=name;
}
}
//測試類
class Test
{
public static void main(String[] args)
{
final Dog dog=new Dog("小黃");//實例化一個狗對象,用final修飾
dog.name="大黃";
dog=new Dog("小八");
}
}
這段代碼中dog對象被修飾為final成常量,其值不可變,但要注意的是dog.name="大黃";這行代碼并沒有錯,那么dog=new Dog("小八")是錯的,也就是說,使用final修飾的引用型變量,變量不可以在指向另外的對象,但是所指變量的內容是可以改變的。
結論:使用final修飾的引用型變量時,變量的值時固定不變的,而變量所指對象的屬性值是可變的。
Java學習筆記十九:Java中的訪問控制修飾符
Java中的訪問控制修飾符 一:Java修飾符的種類: 訪問修飾符 非訪問修飾符 修飾符用來定義類.方法或者變量,通常放在語句的最前端.我們通過下面的例子來說明: public class Hello ...
詳解Java中的訪問控制修飾符(public, protected, default, private)
Java中的訪問控制修飾符已經困惑筆者多時,其中較復雜的情況一直不能理解透徹.今天下定決心,系統.全面地研究Java中的訪問控制修飾符的所有方面,并整理成這篇文章,希望有同樣疑惑的讀者讀完后能有所收獲 ...
分享知識-快樂自己:java 中的訪問修飾符
1):Java中的訪問修飾符: Java面向對象的基本思想之一是封裝細節并且公開接口.Java語言采用訪問控制修飾符來控制類及類的方法和變量的訪問權限,從而向使用者暴露接口,但隱藏實現細節. 訪問控制 ...
java中4種修飾符訪問權限的區別及詳解全過程
java中4種修飾符訪問權限的區別及詳解全過程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修飾符分別為 ...
(轉)JAVA中的權限修飾符
總結
以上是生活随笔為你收集整理的Java final修饰符的作用,Java中的final修饰符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自动化操作应用程序错误_we
- 下一篇: (贪心)均分纸牌