Java面向對象類與對象整理
第一章 面向對象:
1.1 什麽是面向過程:
遇到某件事的時候,思考 “我該怎麽做”然後一步一步實現的過程
1.2 什麽是面向對象:
遇到某件事的時候,思考“我該讓誰來做”,“誰”就是對象,他們怎麽做是他們自己的事,最後一群對象結合起來做好一件事就行
1.3 面向對象舉例
筆記本案例:
- 面向過程:
買一臺組裝電腦,先去網上找需要買那些零部件,然後找配置,然後在網上找零部件,價格和配置都合適,在購買完然後去電腦店去組裝,然後在旁邊監督,在裝上系統回家
- 面向對象:
首先找一個對電腦硬件很了解的人,讓他幫我們查看零部件和配置,然後找好零部件,購買然後讓他現場監督,裝上系統然後打電話給你,拿電腦回家
1.4 面向對象思維方式的好處
- 是一種更符合人們思考習慣的思維
- 面向過程更多的體現的是執行者,面向對象中更多的體現是指揮者
- 將復雜的問題簡單化
第二章 類與對象
2.1對象在需求中的使
案例解析:
大象裝進冰箱
需求:大象裝進冰箱裏
對象:大象、冰箱
步驟:
- 打開冰箱門
- 放進大象去
- 關閉冰箱門
打開、裝、關閉都是冰箱的功能
大象描述:
Class 大象{
}
冰箱描述:
Class冰箱{
Void 打開{}
Void 存儲(大象){ }
Void 關閉
}
當把具體的事物描述清楚之後,然後使用這些具體的事物,Java使用具體的事物,需要通過new 關鍵字來創建事物的具體實例
總結:
- 先按照名詞提煉問題領域中的對象
- 對對象進行描述,明確對象中應該具備的屬性和功能
- 通過new 的方式就可以創建該事物的具體對象
- 通過該對象調用它以後的方法
2.2對象在代碼中的體現
分析:
事物的特點(屬性):
顏色。
輪胎個數。
事物的(功能):
運行。
屬性就是變量,就是方法
- 成員屬性:
在代碼中的體現就是成員變量
- 成員功能:
在代碼中的體現就是成員方法
2.3對象的內存圖解
小汽車案例
package com.oracle.demo06;
public class Car {
//成員變量
String color;
int number;
//成員方法
public void run(){
System.out.println("顏色為:"+color+","+number+"個輪胎");
}
}
//測試類
package com.oracle.demo06;
public class Test {
public static void main(String[] args) {
//創建對象
Car c=new Car();
//給成員變量賦值
c.color="紫色";
c.number=4;
//調用成員方法
c.run();
}
}
2.4類和對象的區別
- 類:
是對某一類事物的事物的抽象描述
- 對象:
用於表示實現中該類事物的個體
2.5局部變量和成員變量區別
區別一:定義的位置不同
定義在類中的變量稱為成員變量
定義在方法中或者{}語句裏面的變量稱為局部變量
區別二:內存中的位置不同
成員變量存儲在堆內存的對象中
局部變量存儲在棧內存的方法中
區別三:生命周期不同
成員變量隨著對象的出現而出現在堆中,隨著對象方法的消失而從堆中消失
局部變量隨著方法的運行而出現在棧中,隨著方法的彈棧而消失
區別四:初始化不同
成員變量因為在堆內存中,所有默認的初始化值
局部變量沒有默認的初始化值,必須手動給其賦值才可以使用
2.6基本類型和引用類型作為參數傳遞
基本數據類型參數傳遞:
package com.oracle.demo01;
public class Demo01 {
public static void main(String[] args) {
int a=1;
method01(a);
System.out.println(a);
}
//基本數據類型傳遞
public static void method01(int a){
a=2;
}
}
引用數據類型參數傳遞:
// package com.oracle.demo01;
public class Person {
String name;
int age;
public void speak(){
System.out.println("我叫"+name+",今年"+age+"歲了");
}
}
package com.oracle.demo01;
public class Demo01 {
public static void main(String[] args) {
//引用數據類型傳遞-- 對象
//創建對象
Person p=new Person();
//給變量賦值
p.name="欣欣";
p.age=24;
//調用method方法
methd02(p);
//調用p變量中的speak方法
p.speak();
}
//引用數據類型傳遞--對象
public static void methd02(Person p){
p.name="花花" ;
p.age=18;
}
}
兩個引用指向同一個對象,不管是哪一個引用改變了引用的所指向的對象的中的值,其他引用再次使用都是改變後的值。
Java面向對象類與對象整理