溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

好程序員Java教程分享Java面向?qū)ο笈c面向過程

發(fā)布時間:2020-06-24 14:50:21 來源:網(wǎng)絡(luò) 閱讀:140 作者:wx5da18b5c4b01e 欄目:編程語言

  好程序員Java教程分享Java面向?qū)ο笈c面向過程,面向?qū)ο? 是一種看待問題, 解決問題的思維方式, 著眼點在于找到一個能夠幫助解決問題的實體, 然后委托這個實體來解決問題

  面向過程: 是一種看待問題, 解決問題的思維方式, 著眼點在于問題是怎樣一步步的解決的, 然后親力親為的去解決這個問題

Java是一種面向?qū)ο蟮恼Z言:

? 用Java這門語言, 可以很容易的寫出具有面向?qū)ο笏季S方式的代碼

用面向?qū)ο蟮木幊陶Z言寫出的代碼, 一定是面向?qū)ο蟮拇a? 錯!

大象裝冰箱:

面向過程:

  1. 打開冰箱門 我
  2. 把大象裝進去 我
  3. 關(guān)上冰箱門 我

面向?qū)ο?

  1. 打開冰箱門 冰箱
  2. 把大象裝進去 大象
  3. 關(guān)上冰箱門 冰箱

小明要去組裝一臺電腦:

面向過程:

  1. 補充電腦相關(guān)知識 小明
  2. 去市場買零配件 小明
  3. 將零配件運回家中 小明
  4. 組裝 小明

面向?qū)ο?

  1. 找到一個懂電腦的朋友(老王) 小明
  2. 去市場買零配件 老王
  3. 將零配件運回家中 快遞
  4. 組裝 老王

類和對象

對象: 能夠幫助解決問題的那個實體

類: 若干個具有相同的特征和行為的對象的集合

類和對象的關(guān)系: 類是對象的集合, 對象是類的個體

張三, 李四, 王五, 趙六, 人類

哈士奇, 泰迪, 金毛, 阿拉斯加, 拉布拉多, 薩摩耶... 狗類

快遞: 順豐, 各種通, 各種達,

超級英雄(Super Hero): Caption American, Iron man, Spider man, Doctor Strange, Ant

1.6.2 類的設(shè)計

類的語法:

class 類名 {
    // 類體
    // 類是若干個具有相同的特征和行為的對象的集合
    // 在類體中, 定義了這些相同的特征和行為
    // 特征: 表現(xiàn)出的是屬性(就是一個全局變量)
    // 行為: 表現(xiàn)出的是方法(不要加static)
    // 屬性, 是有默認值的
    // 整型: 0
    // 浮點型: 0.0
    // 布爾型: false
    // 字符型: '\0'  '\u000'
    // 引用數(shù)據(jù)類型: null
    String name;
    int age;

    void eat() {}
    void sleep() {}
    void coding() {}
}

注意事項:

  1. 類名是一個標(biāo)識符, 遵循大駝峰命名法
  2. 一個java文件中可以寫多個類, 但是只有和文件名相同的那個類名可以修飾為public
  3. 在程序編譯的時候, 每一個類都會生成一個.class字節(jié)碼文件, 而且.class文件的名字和類名相同

注意:
在程序中, 是先有類, 然后再從這個類中實例化一個對象

1.6.3 對象的實例化
1.6.4 對象的內(nèi)存分析
1.6.5 類中的成員的訪問

static:

用關(guān)鍵字static修飾的成員, 叫做靜態(tài)成員

沒有用關(guān)鍵字static修飾的成員, 叫做非靜態(tài)成員

靜態(tài)成員:

  1. 靜態(tài)成員是屬于類的, 在訪問的時候, 需要用類來訪問
  2. 靜態(tài)成員開辟空間, 是在這個類第一次被加載到內(nèi)存中的時候開辟的

非靜態(tài)成員:

  1. 非靜態(tài)成員是屬于對象的, 在訪問的時候, 需要用對象來訪問
  2. 非靜態(tài)成員開辟空間, 是在這個對象被實例化的時候開辟的

  3. 靜態(tài)方法中, 不能直接訪問非靜態(tài)成員
  4. 在非靜態(tài)的方法中, 可以直接訪問靜態(tài)的成員
class Person {
    String name;
    static int a;

    void eat() {}
    static void sleep() {}
}
class Program {
    public static void main(String[] args) {
        Person xiaoming = new Person();
        // 訪問非靜態(tài)成員
        xiaoming.name = "xiaoming";
        xiaoming.eat();
        // 訪問靜態(tài)成員
        Person.a = 10;
        Person.sleep();
        // 注: 
        // 訪問靜態(tài)的成員, 也可以使用對象來訪問, 但是會有警告
        // 推薦使用類來訪問靜態(tài)成員
    }
}
1.6.6 類是一種自定義的類型
1.6.7 this關(guān)鍵字

this: 在程序中,代表對當(dāng)前對象的引用。

當(dāng)前對象:

? this關(guān)鍵字是需要用在某一個非靜態(tài)方法中。

? 非靜態(tài)方法需要用對象來訪問,哪個對象調(diào)用了這個方法,this就是誰

this關(guān)鍵字可以被省略:

在類中訪問當(dāng)前的非靜態(tài)的成員,可以省略掉this

但是有一種情況不能省略:

public class Person {
  String name;
  int age;
  char gender;

  void setInfo(String name, int age, char gender) {
      // 就近原則
      this.name = name;
      this.age = age;
      this.gender = gender;
  }
}
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI