當前位置: 首頁 / 技術分享 / 正文
好程序員Java培訓分享Java面向對象與面向過程

2019-12-09

JAVAEE 好程序員 Java培訓

  好程序員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;

> }

> }

> ```

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2020-02-17(北京)

    預約報名

    開班時間:2020-03-02(深圳)

    預約報名
  • 大數據+人工智能 <好程序員嚴選班>

    開班時間:2019-12-23(北京)

    開班盛況
  • 大數據+人工智能 <好程序員班>

    開班時間:2020-02-24(杭州)

    預約報名

    開班時間:2020-02-17(北京)

    預約報名
  • JavaEE分布式開發 <高端班>

    開班時間:2020-03-09(北京)

    預約報名
  • Python全棧+人工智能 <高端班>

    開班時間:2019-07-22(北京)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2020-02-24(北京)

    預約報名
在線咨詢
免費試聽
入學教程
立即報名

Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公安網11010802011455號

狠狠干_日日操_天天操_东京干_狠狠日影院