您好,登錄后才能下訂單哦!
好程序員Java教程分享Java面向對象與面向過程,面向對象: 是一種看待問題, 解決問題的思維方式, 著眼點在于找到一個能夠幫助解決問題的實體, 然后委托這個實體來解決問題
面向過程: 是一種看待問題, 解決問題的思維方式, 著眼點在于問題是怎樣一步步的解決的, 然后親力親為的去解決這個問題
Java是一種面向對象的語言:
? 用Java這門語言, 可以很容易的寫出具有面向對象思維方式的代碼
用面向對象的編程語言寫出的代碼, 一定是面向對象的代碼? 錯!
大象裝冰箱:
面向過程:
- 打開冰箱門 我
- 把大象裝進去 我
- 關上冰箱門 我
面向對象:
- 打開冰箱門 冰箱
- 把大象裝進去 大象
- 關上冰箱門 冰箱
小明要去組裝一臺電腦:
面向過程:
- 補充電腦相關知識 小明
- 去市場買零配件 小明
- 將零配件運回家中 小明
- 組裝 小明
面向對象:
- 找到一個懂電腦的朋友(老王) 小明
- 去市場買零配件 老王
- 將零配件運回家中 快遞
- 組裝 老王
類和對象
對象: 能夠幫助解決問題的那個實體
類: 若干個具有相同的特征和行為的對象的集合
類和對象的關系: 類是對象的集合, 對象是類的個體
張三, 李四, 王五, 趙六, 人類
哈士奇, 泰迪, 金毛, 阿拉斯加, 拉布拉多, 薩摩耶... 狗類
快遞: 順豐, 各種通, 各種達,
超級英雄(Super Hero): Caption American, Iron man, Spider man, Doctor Strange, Ant
類的語法:
class 類名 {
// 類體
// 類是若干個具有相同的特征和行為的對象的集合
// 在類體中, 定義了這些相同的特征和行為
// 特征: 表現出的是屬性(就是一個全局變量)
// 行為: 表現出的是方法(不要加static)
// 屬性, 是有默認值的
// 整型: 0
// 浮點型: 0.0
// 布爾型: false
// 字符型: '\0' '\u000'
// 引用數據類型: null
String name;
int age;
void eat() {}
void sleep() {}
void coding() {}
}
注意事項:
注意:
在程序中, 是先有類, 然后再從這個類中實例化一個對象
static:
用關鍵字static修飾的成員, 叫做靜態成員
沒有用關鍵字static修飾的成員, 叫做非靜態成員
靜態成員:
非靜態成員:
非靜態成員開辟空間, 是在這個對象被實例化的時候開辟的
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();
// 注:
// 訪問靜態的成員, 也可以使用對象來訪問, 但是會有警告
// 推薦使用類來訪問靜態成員
}
}
this: 在程序中,代表對當前對象的引用。
當前對象:
? this關鍵字是需要用在某一個非靜態方法中。
? 非靜態方法需要用對象來訪問,哪個對象調用了這個方法,this就是誰
this關鍵字可以被省略:
在類中訪問當前的非靜態的成員,可以省略掉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; } }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。