java面向對象

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個,跑起來了

 

 

7、局部變量和成員變量

成員變量:定義在類中的變量,在整個類內都有效,它屬於對象,它隨着對象的建立而建立,隨着對象的消失而消失;若是沒有賦初值,採用存儲堆中的默認值 

局部變量:定義在類的方法中的變量,只在其聲明的方法內有效,使用完立刻釋放空間;若是要想使用必須手動初始化

  

例子

[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!



8、匿名對象

定義:沒有名字的實體

做用:當只使用一次時可使用匿名對象,執行完畢後,該對象就變成了垃圾;若是對象要多成員進行屢次調用,則必須給對象起個名字,不能繼續使用匿名對象;執行方法時,能夠將匿名對象做爲實際參數,傳遞進去  

例子

[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!
相關文章
相關標籤/搜索