1. 程式人生 > 實用技巧 >Python 面向物件程式設計的核心概念知識點簡介

Python 面向物件程式設計的核心概念知識點簡介

遞迴

  概述
  •   遞迴:指的是當前方法呼叫自己的一種現象
  • 遞迴的分類

      • 遞迴分為兩類:直接遞迴和間接遞迴
      • 直接遞迴:稱為方法自身呼叫自己的情況
      • 間接遞迴:可以歸結為:方法A呼叫了方法B,方法B呼叫了方法C,方法C呼叫了方法A
  • 注意事項:

    • 遞迴一定要有邊界條件(條件限定) ,保證遞迴能夠停下來,否則會發生棧記憶體溢位.
    • 在遞迴放縱雖然有限定條件,但是遞迴的次數也不能太多,否則也會發生棧記憶體溢位現象
    • 構造方法禁止遞迴

使用遞迴列印多級目錄

public static void main(String[] args) {
        // 找到Hello檔案的路徑
File file = new File("C:\\Users\\admin\\Desktop\\Hello"); //呼叫getAllFiles() getAllFiles(file); } /* 定義一個方法,引數傳遞File型別的目錄 方法中要對目錄進行遍歷 */ public static void getAllFiles(File file) { // 表明file此時是一個目錄 System.out.println(file);
//首先先獲取到它直接子目錄和直接子檔案 File[] files = file.listFiles(); // 遍歷files目錄 for (File f : files) { // 判斷如果得到的f是一個目錄,需要再次遍歷 if (f.isDirectory()) { // 表明f是一個目錄,則繼續遍歷這個目錄 //getAllFiles方法就是獲取所有的檔案,引數傳遞的剛好是目錄。所以直接呼叫getAllFiles:遞迴(自己呼叫自己) getAllFiles(f); }
else { // 此時f不是一個目錄,肯定是一個檔案 System.out.println(f); } } }

檔案過濾器優化

java.io.FileFilter是一個介面,是File的過濾器,該介面的物件可以傳遞給File類的listFiles(File Filter)作為引數,介面中只有有個方法:

booleanaccept(Filepathname) :測試pathname是否應該包含在當前的File目錄中,

如果符合,返回true.