好程式設計師Java教程分享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;
> }
> }
> ```
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2667603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java培訓分享Java物件導向概念解析程式設計師Java物件
- 好程式設計師Java學習路線分享怎麼理解Java物件導向程式設計師Java物件
- 好程式設計師前端教程-javascript的物件導向程式設計師前端JavaScript物件
- java物件導向程式設計(轉)Java物件程式設計
- 好程式設計師分享Java面試題:物件導向的四個基本特徵程式設計師Java面試題物件特徵
- java-物件導向程式設計--(3)Java物件程式設計
- 程式導向與物件導向物件
- 物件導向與程式導向物件
- 用java進行物件導向程式設計,物件導向是什麼意思Java物件程式設計
- JAVA_15 物件導向程式設計(下)Java物件程式設計
- java-物件導向程式設計--多型Java物件程式設計多型
- java-物件導向程式設計--繼承Java物件程式設計繼承
- Java SE 學習---物件導向程式設計Java物件程式設計
- 物件導向程式設計物件程式設計
- Java--物件導向設計Java物件
- java物件導向程式設計的基本知識Java物件程式設計
- 【譯】Java8官方教程:物件導向程式設計的概念Java物件程式設計
- 談談“物件導向”與“程式導向”物件
- iOS 開發之 OOA (物件導向分析) & OOD (物件導向設計)& OOP (物件導向程式設計)iOS物件OOP程式設計
- C++與物件導向程式設計C++物件程式設計
- [.net 物件導向程式設計基礎] (2) 關於物件導向程式設計物件程式設計
- 十三、物件導向程式設計物件程式設計
- js物件導向程式設計JS物件程式設計
- 程式設計思想 物件導向程式設計物件
- 十六、物件導向程式設計物件程式設計
- perl 物件導向程式設計物件程式設計
- LotusScript物件導向程式設計物件程式設計
- Javascript 物件導向程式設計JavaScript物件程式設計
- 程式設計體系結構(06):Java物件導向程式設計Java物件
- 使用Java開始物件導向的程式設計(轉)Java物件程式設計
- Java物件導向——類與物件Java物件
- php中的程式導向與物件導向PHP物件
- 《JavaScript物件導向程式設計指南》 - JavaScript好書JavaScript物件程式設計
- Java — 物件導向Java物件
- Java物件導向Java物件
- [Java物件導向]Java物件
- 物件導向程式設計-java語言 第二週程式設計題物件程式設計Java
- 深入解析 Java 物件導向程式設計與類屬性應用Java物件程式設計