回覆列表
  • 1 # 我是阿嘛

    public class InnerClass {

    public InnerClass(String name,String age){

    this.InnerClass$name = name;

    this.InnerClass$age = age;

    }

    public void display(){

    System.out.println(this.InnerClass$name + "----" + this.InnerClass$age );

    }

    }

    所以從上面程式碼來看,內部類並不是直接呼叫方法傳遞的引數,而是利用自身的構造器對傳入的引數進行備份,自己內部方法呼叫的實際上時自己的屬性而不是外部方法傳遞進來的引數。

    直到這裡還沒有解釋為什麼是final?在內部類中的屬性和外部方法的引數兩者從外表上看是同一個東西,但實際上卻不是,所以他們兩者是可以任意變化的,也就是說在內部類中我對屬性的改變並不會影響到外部的形參,而然這從程式設計師的角度來看這是不可行的,畢竟站在程式的角度來看這兩個根本就是同一個,如果內部類該變了,而外部方法的形參卻沒有改變這是難以理解和不可接受的,所以為了保持引數的一致性,就規定使用final來避免形參的不改變。

  • 中秋節和大豐收的關聯?
  • 茶湯裡的泡沫對身體有害嗎?