好程式設計師Java教程分享Java物件導向與程式導向

好程式設計師IT發表於2019-12-09

  好程式設計師Java 教程分享 Java 物件導向與程式導向 物件導向: 是一種看待問題 , 解決問題的思維方式 , 著眼點在於找到一個能夠幫助解決問題的實體 , 然後委託這個實體來解決問題

 

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

 

Java 是一種物件導向的語言 :

 

Java 這門語言 , 可以很容易的寫出具有物件導向思維方式的程式碼

 

用物件導向的程式語言寫出的程式碼, 一定是物件導向的程式碼 ?    !

 

> 大象裝冰箱 :

>

> 程式導向 :   

>

> 1. 開啟冰箱門  

> 2. 把大象裝進去         我

> 3. 關上冰箱門             我

>

> 物件導向 :

>

> 1. 開啟冰箱門             冰箱

> 2. 把大象裝進去         大象

> 3. 關上冰箱門             冰箱

 

 

> 小明要去組裝一臺電腦 :

>

> 程式導向 :

>

> 1. 補充電腦相關知識   小明

> 2. 去市場買零配件                     小明

> 3. 將零配件運回家中                 小明

> 4. 組裝                                        小明

>

> 物件導向 :

>

> 1. 找到一個懂電腦的朋友 ( 老王 )           小明

> 2. 去市場買零配件                               老王

> 3. 將零配件運回家中                           快遞

> 4. 組裝                                                  老王

 

** 類和物件 **

 

物件: 能夠幫助解決問題的那個實體

 

: 若干個具有相同的特徵和行為的物件的集合

 

類和物件的關係: 類是物件的集合 , 物件是類的個體

 

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

 

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

 

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

 

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

 

#### 1.6.2 類的設計

 

類的語法:

 

```java

class 類名 {

    // 類體

    // 類是若干個具有相同的特徵和行為的物件的集合

    // 在類體中 , 定義了這些相同的特徵和行為

    // 特徵 : 表現出的是屬性 ( 就是一個全域性變數 )

    // 行為 : 表現出的是方法 ( 不要加 static)

    // 屬性 , 是有預設值的

    // 整型 : 0

    // 浮點型 : 0.0

    // 布林型 : false

    // 字元型 : '\0'  '\u000'

    // 引用資料型別 : null

    String name;

    int age;

    

    void eat() {}

    void sleep() {}

    void coding() {}

}

```

 

注意事項:

 

1. 類名是一個識別符號 , 遵循大駝峰命名法

2. 一個 java 檔案中可以寫多個類 , 但是隻有和檔名相同的那個類名可以修飾為 public

3. 在程式編譯的時候 , 每一個類都會生成一個 .class 位元組碼檔案 , 而且 .class 檔案的名字和類名相同

 

注意:

在程式中, 是先有類 , 然後再從這個類中例項化一個物件

 

#### 1.6.3 物件的例項化

 

#### 1.6.4 物件的記憶體分析

 

#### 1.6.5 類中的成員的訪問

 

**static**:

 

用關鍵字static 修飾的成員 , 叫做靜態成員

 

沒有用關鍵字static 修飾的成員 , 叫做非靜態成員

 

** 靜態成員 **:

 

1. 靜態成員是屬於類的 , 在訪問的時候 , 需要用類來訪問

2. 靜態成員開闢空間 , 是在這個類第一次被載入到記憶體中的時候開闢的

 

** 非靜態成員 **:

 

1. 非靜態成員是屬於物件的 , 在訪問的時候 , 需要用物件來訪問

2. 非靜態成員開闢空間 , 是在這個物件被例項化的時候開闢的

 

1. 靜態方法中 , 不能直接訪問非靜態成員

2. 在非靜態的方法中 , 可以直接訪問靜態的成員

 

```java

class Person {

    String name;

    static int a;

    

    void eat() {}

    static void sleep() {}

}

class Program {

    public static void main(String[] args) {

        Person xiaoming = new Person();

        // 訪問非靜態成員

        xiaoming.name = "xiaoming";

        xiaoming.eat();

        // 訪問靜態成員

        Person.a = 10;

        Person.sleep();

        // :

        // 訪問靜態的成員 , 也可以使用物件來訪問 , 但是會有警告

        // 推薦使用類來訪問靜態成員

    }

}

```

#### 1.6.6 類是一種自定義的型別

#### 1.6.7 this 關鍵字

 

> this: 在程式中,代表對當前物件的引用。

>

> 當前物件:

>

> this 關鍵字是需要用在某一個非靜態方法中。

>

> 非靜態方法需要用物件來訪問,哪個物件呼叫了這個方法,this 就是誰

 

> this 關鍵字可以被省略:

>

> 在類中訪問當前的非靜態的成員,可以省略掉 this

>

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

>

> ```java

> 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;

> }

> }

> ```


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2667603/,如需轉載,請註明出處,否則將追究法律責任。

相關文章