/*
* final可用來修飾
* 基本數據類型 相當於常量 無法改變其值
* 引用數據類型 不可以改變變量所指向的對象 但是可以改變對象的內容 如屬性
* 修飾方法 方法不可以被重寫
* 修飾類 不可以被繼承
* 修飾形參 包括基本和引用數據類型
* */
class Person
{
String name;
int age;
Person()
{
}
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void showInfo()
{
System.out.println("姓名"+name+"年齡"+age);
}
}
class FinalTest
{
//final 修飾的基本數據類型和引用數據類型 要麼通過構造函數初始化 要麼直接初始化
final int N=21;
final Person P;//直接初始化final Person P =new Person() ;
FinalTest() //構造函數初始化 final修飾的變量
{
P =new Person("張無忌",25) ;//P =new Person() ;
//N = 21;
}
//有返回值類型 方法名和類名相同 爲一般函數 而不是構造函數
public void FinalTest2(final Person p)
{
p.age = 15; //形參被final修飾 函數內只能改變對象屬性或方法 引用p不能指向新的對象
//P =new Person("康康",25) ; 錯誤 不可以改變對象
}
}
public class FinalDemo {
public static void main(String[] args) {
FinalTest f = new FinalTest();
System.out.println(f.N);
//f.N = 24; final修飾的N無法重新定義新值
//final修飾的類類型引用變量 是無法重新建立新的對象的 但是可以改變對象內的內容
//f.P = new Person("黃飛鴻",15);
f.P.name = "張三丰"; //可以改變對象的內容
f.P.showInfo();
Person t = new Person("唐太宗",23);
f.FinalTest2(t);
t.showInfo();
}
}
final 關鍵字
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.