1、面向過程與面向過程對比java
面向過程:1本身動手作—>2買菜—>3洗菜—>4煮飯炒菜—>5很難吃,浪費時間ide
面向對象:1找專業對象—>2餐館.點餐—>3餐館,作飯—>4飯好吃,節約時間函數
面向對象的思想先找有的對象,直接拿來使用,如sun沒有提供,則本身造對象spa
2、面向對象特徵設計
1)封裝(encapsulation)對象
2)繼承(inheritance)繼承
3)多態(polymorphism)內存
開發的過程:其實就是不斷的建立對象,使用對象,指揮對象作事情開發
設計的過程:其實就是在管理和維護對象之間的關係it
3、java描述事物
屬性:類中的成員變量
行爲:類中的成員函數
4、定義類
1) 使用class關鍵字定義類
2) 類名就是標識符,命名規則,單詞的首字母大寫,多個單詞的首字母大寫
3) 類名後緊跟一對{}表示類的開始和結束
4) 不須要初始化值
public class Car { String color;// 成員變量 int num; // 成員變量 // 成員函數 void run() { System.out.println(color + "的車,輪胎數:" + num + "個,跑起來了"); } }
5、建立對象
class CarDemo { public static void main(String[] args) { //使用new關鍵字,在堆內存中開闢了空間,產生了一個實體 //爲了方便使用生產的汽車,起名 // c 是Car類型,叫作類類型變量 // c是持有的引用,新生產的汽車並無直接賦值給c,就想電視遙控器同樣 Car c = new Car(); c.run(); //使用對象的功能 } }
6、對象成員調用
1)成員變量
2)成員方法
public class CarDemo { public static void main(String[] args) { Car c = new Car(); //對象名.成員變量名將返回成員變量中存儲的數值 int num=c.num; System.out.println(num); //對象名.成員變量名,也能夠給成員變量賦值 c.num = 4; c.color = "black"; //對象名.成員方法(); c.run(); } }
例子
[root@bch04 java]# cat Cardemo.java class Car { String color; int num; void run() { System.out.println(color +"顏色的車,輪胎數:" +num +"個,跑起來了"); } } class Cardemo { public static void main(String[] args) { Car c = new Car(); c.color = "red"; c.num = 4; c.run(); } } //運行結果 [root@bch04 java]# java Cardemo red顏色的車,輪胎數:4個,跑起來了
成員變量:定義在類中的變量,在整個類內都有效,它屬於對象,它隨着對象的建立而建立,隨着對象的消失而消失;若是沒有賦初值,採用存儲堆中的默認值
局部變量:定義在類的方法中的變量,只在其聲明的方法內有效,使用完立刻釋放空間;若是要想使用必須手動初始化
例子
[root@bch04 java]# cat Demo13.java class Car { String color = "red"; String name = "Smart"; int num = 4; void run() { if (num <4) { System.out.println("bad!"); } else { System.out.println(name +":" +color +":" +num +":run!"); } } } class CarFactory { String name; String addr; void repair(Car sc) { sc.num = 4; System.out.println("good!"); } } public class Demo13 { public static void main(String[] args){ Car sc1 = new Car(); sc1.run(); sc1.num = 3; sc1.run(); CarFactory sc2 = new CarFactory(); sc2.name = "幸福修車廠"; sc2.addr = "廣東深圳"; sc2.repair(sc1); sc1.run(); } } //運行結果 [root@bch04 java]# java Demo13 Smart:red:4:run! bad! good! Smart:red:4:run!
定義:沒有名字的實體
做用:當只使用一次時可使用匿名對象,執行完畢後,該對象就變成了垃圾;若是對象要多成員進行屢次調用,則必須給對象起個名字,不能繼續使用匿名對象;執行方法時,能夠將匿名對象做爲實際參數,傳遞進去
例子
[root@bch04 java]# cat Demo13.java class Car { String color = "red"; String name = "Smart"; int num = 4; void run() { if (num <4) { System.out.println("bad!"); } else { System.out.println(name +":" +color +":" +num +":run!"); } } } class CarFactory { String name; String addr; Car repair(Car sc) { sc.num = 4; System.out.println("good!"); return sc; } } public class Demo13 { public static void main(String[] args){ //建立非匿名對象 Car sc1 = new Car(); sc1.run(); sc1.num = 3; sc1.run(); CarFactory sc2 = new CarFactory(); sc2.name = "幸福修車廠"; sc2.addr = "廣東深圳"; sc2.repair(sc1); sc1.run(); System.out.println("**********"); //建立匿名對象,匿名對象可做爲實參傳遞,匿名對象有方法無屬性 //匿名對象一,使用一次 new Car().run(); //匿名對象二 Car sc3 = sc2.repair(new Car()); sc3.run(); } } [root@bch04 java]# java Demo13 Smart:red:4:run! bad! good! Smart:red:4:run! ********** Smart:red:4:run! good! Smart:red:4:run!