JAVA學習-------第二週知識點總結

qq_35275168發表於2020-12-07

初學物件導向

1、何為物件導向?何為程式導向?

物件導向與程式導向:

程式導向:即一步一步的實現解決問題所需的步驟;

物件導向:將問題分解成各個物件,每一個物件執行對應的解決問題的操作;

這裡舉例:五子棋

以程式導向的思路設計遊戲:
    1、開始遊戲-->
    2、黑子下棋-->
    3、螢幕繪製落點-->
    4、判斷輸贏-->
    5、白子下棋-->
    6、螢幕繪製落點-->
    7、判斷輸贏
    8、執行步驟2
    9、輸出最終結果
以物件導向的思路設計遊戲:
物件1:玩家:棋子數量 棋子落點
物件2:棋盤: 棋盤大小 繪製棋點
物件3:規則:潘墩輸贏 輸出結果

物件導向與程式導向的優缺點:

程式導向

  • 優點:效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源;比如微控制器、嵌入式開發、 Linux/Unix等一般採用程式導向開發,效能是最重要的因素。
  • 缺點:沒有物件導向易維護、易複用、易擴充套件

物件導向

  • 優點:易維護、易複用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易於維護
  • 缺點:效能比程式導向低

因此,應用何種模式設計,應與專案設計的資源消耗,是否需要長期維護、修改等等來選擇模式;

2、何為類?何為物件?

類與物件

類是對現實事物的一種抽象化,具有屬性和行為;

屬性:現實事物的特點:例如年齡,身高,體重等等,在類中用變數表示屬性;

行為:現實事物完成某種過程;例如吃飯、睡覺。在類中用方法來表示行為;

因為類是一種抽象化,故只需定義關鍵的屬性和行為即可;

語法定義

訪問修飾符 class 類名 {
    // 屬性:定義在類中的變數
    // 行為:定義在類中的方法
}

物件

物件是類的具體實現;因為類是抽象的,在呼叫的過程中我們需要將其具體化,

例如在類狗class Dog{}中,在現實生活中有不同種類的狗,有不同名字的狗;

因此:物件的一些語法使用如下

物件的建立:
	類名 物件名 = new 類名();
    Dog dog=new Dog();
物件的使用:
	訪問屬性:物件名.屬性名
    dog.name="小黑";
	訪問行為:物件名.行為名()
    dog.eat();

3、何為構造方法?方法又如何理解?以及常見的方法?

構造方法

定義

構造方法與類名相同,沒有返回值,連void都不能寫。
構造方法的形參與成員方法的引數一樣,可以沒有引數,也可以有引數。 構造方法可以過載。

功能

初始化物件中的屬性

呼叫

建立物件時會觸發一個構造方法被呼叫,僅觸發一個構造方法被呼叫,具體觸發的是那個構造方法,由建立物件時的引數決定。

預設構造方法:

當一個類中如果一個構造方法都沒有寫,那麼編譯器會為類加上一個預設的構造方法。
預設構造構造方法格式:無參,空方法體。

方法

定義

用於封裝重複程式碼,並做到隨時任意使用,並用名字命名,要實現這種功能時呼叫名字即可;

語法定義

修飾符 返回值型別 方法名(引數,引數,引數....){
    方法體;
    return 返回值; 
    }
    //修飾符目前可為public static
    //返回值型別,可為八大基本型別之一;
    //方法名,呼叫時運用的名字;
    //引數,分為實參和形參;形參代表方法定義上的,用於接收實際引數的引數。實參代表實際參與運算的引數。
    //方法體,方法功能的實現程式碼;
    //return 返回值,型別與返回值型別相同,結束方法的執行,並將該值返還給呼叫處;
    //引數可有可無,可以有多個,用逗號分隔,無時仍需要括號,小括號內可以留空;
    //多個方法的定義順序無關係,定義後未呼叫就不會執行;

方法的呼叫

public static void eat(){
    System.out.println("正在吃飯;")
}

public static void main(String[] args){
    eat();
}

設計方法的思路

常見的無序陣列排序

其一:選擇排序:一次遍歷後,將最大(最小)的數與第一個數互換,繼續遍歷剩下數,重複操作。

其二:氣泡排序:相鄰元素之間比較,前面比後面大(小)則互換;

其三:快速排序(遞迴思想:程式呼叫自身的程式設計技巧稱為遞迴)(分割法,此處不詳細講)

4、常見的類有哪些?

Java中常見的類有

String :

對字串的一些操作方法,例如獲取長度length();或擷取,或比較等等;

另外,當對字串進行修改的時候,特別是字串物件經常改變的情況下,需要使用 StringBuffer 和 StringBuilder 類。和 String 類不同的是,StringBuffer 和 StringBuilder 類的物件能夠被多次的修改,並且不產生新的未使用物件。

Math:

數學計算中常用的一些記事,例如:如求大值max(i1,i2),求最小值min(i1,i2);冪運算pow(2,3)=2^3;開平方sqrt(9)=3;以及產生範圍[0,1)之間的隨機數Math.random();

Random:

產生隨機數的另一種方法

System:

常用的輸入輸出

Date:

用於封裝時間,使用當前時間初始化新建的Date物件

Calendar:

也是用於操作時間,大部分情況下使用Calender替換Date。

SimpleDateFormat

對Date物件得到的時間進行格式化

Pattern:

一個用正規表示式所訂製的模式來對字串進行匹配工作的類庫包)中的一個類,常用於字串的匹配;

正規表示式:事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。詳細點此網頁

5、何為物件的修飾符?

許可權修飾符

在這裡插入圖片描述

靜態關鍵字static

  • 相比較於類中的屬性,亦可成為成員變數;每個類有著他獨立的屬性;而有時候有必要共享一些屬性,這時候的屬性加入修飾符static可以使該屬性成為所有物件的公有屬性,可以修改該屬性的數值;
  • 靜態成員:Java中被static修飾過後的成員稱為靜態成員或類成員,他屬於整個類,所有的物件都可以對該變數進行訪問或修改;
  • 如何訪問靜態變數?:類名或者物件直接訪問。

靜態關鍵字static

  • 相比較於類中的屬性,亦可成為成員變數;每個類有著他獨立的屬性;而有時候有必要共享一些屬性,這時候的屬性加入修飾符static可以使該屬性成為所有物件的公有屬性,可以修改該屬性的數值;
  • 靜態成員:Java中被static修飾過後的成員稱為靜態成員或類成員,他屬於整個類,所有的物件都可以對該變數進行訪問或修改;
  • 如何訪問靜態變數?:類名或者物件直接訪問。

本週學習到此結束,集合各大網站,如有雷同,純屬意外!!!在此抱歉!!!

相關文章