Java 抽象類與方法:實現安全性與程式碼重用

小万哥丶發表於2024-03-05

Java 內部類

簡介

在 Java 中,可以巢狀類(即類內部的類),稱為內部類。巢狀類的目的是將屬於一起的類分組,從而使您的程式碼更可讀和可維護。

訪問內部類

要訪問內部類,請建立外部類的物件,然後建立內部類的物件:

class OuterClass {
  int x = 10;

  class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

私有內部類

與 “普通” 類不同,內部類可以是私有的或受保護的。如果不希望外部物件訪問內部類,請將類宣告為私有:

class OuterClass {
  int x = 10;

  private class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass(); // 錯誤:無法訪問私有內部類
    System.out.println(myInner.y + myOuter.x);
  }
}

靜態內部類

內部類也可以是靜態的,這意味著可以在不建立外部類物件的情況下訪問它:

class OuterClass {
  int x = 10;

  static class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass.InnerClass myInner = new OuterClass.InnerClass();
    System.out.println(myInner.y);
  }
}

注意: 靜態內部類不能訪問外部類的成員,就像靜態屬性和方法一樣。

從內部類訪問外部類

內部類的一個優勢是,它們可以訪問外部類的屬性和方法:

class OuterClass {
  int x = 10;

  class InnerClass {
    public int myInnerMethod() {
      return x;
    }
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.myInnerMethod()); // 10
  }
}

內部類提供了許多優勢,例如:

  • 提高程式碼的可讀性和可維護性
  • 允許訪問外部類的成員
  • 可以是靜態的,以便在不建立外部類物件的情況下使用

請根據您的需要選擇合適的內部類型別。

Java 抽象類和方法

資料抽象

資料抽象是隱藏某些細節並僅向使用者顯示必要資訊的過程。

抽象可以透過抽象類或介面來實現

抽象類

抽象類是一種受限制的類,不能用於建立物件(要訪問它,必須從另一個類繼承)。

抽象類可以使用 abstract 關鍵字宣告。

抽象方法

抽象方法是一種只能在抽象類中使用的方法,它沒有具體的實現體,具體的實現由子類提供。

抽象方法可以使用 abstract 關鍵字宣告。

示例

abstract class Animal {
  public abstract void animalSound();

  public void sleep() {
    System.out.println("Zzz");
  }
}

class Pig extends Animal {
  @Override
  public void animalSound() {
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();
    myPig.animalSound();
    myPig.sleep();
  }
}

輸出:

The pig says: wee wee
Zzz

為什麼使用抽象類和方法?

  • 為了實現安全性 - 隱藏物件的某些細節,僅顯示其重要細節。
  • 為了促進程式碼重用 - 抽象類可以提供通用的功能,子類可以根據需要進行擴充套件。
  • 為了提高程式碼的可讀性和可維護性 - 抽象類可以幫助將程式碼組織成邏輯模組。

注意

  • 抽象類不能被例項化。
  • 抽象類可以包含抽象方法和常規方法。
  • 子類必須重寫所有抽象方法,否則子類也是抽象類。

總結

抽象類和方法是 Java 中重要的概念,它們可以幫助您編寫更安全、更可重用和更易於維護的程式碼。

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:

微信公眾號搜尋:Let us Coding,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關注

相關文章