天天看點

Day_5面向對象

Day_5面向對象

通過類的方式,來組織代碼,以對象的方式,封裝資料

1、       對象:具體的事物(屬性(變量):區分其他對象,行為(方法):對象的功能)

類:對對象的抽象,就是java在堆記憶體中new建立的實體。

2、消息:對象之間通過消息聯系(程式中調用相關方法)

目的對象(傳遞的對象)     方法的名稱(調用的方法)方法參數(執行效果不同)

1)一個對象可以接收多個消息,響應不一樣

2)相同消息給不同對象,所做的響應不同

3)發送方不需要知道接收方如何對請求予以響應的。

3、面向對象的特性:

封裝:隐藏底層的實作細節,對于操作人沒有影響。

繼承:(更好地進行抽象與分類,減少代碼和資料的備援,實作代碼的複用,提高可維護性)

子類繼承了父類的所有屬性(特殊與一般的關系)

有特殊關系的時候(老師和人),可以使用繼承。Cpu和電腦,就不能繼承,值屬于一部分。

多态:多種形态,必須先實作繼承,才能實作繼承

類:

public classPersonTest05 {

   int age;

   Stringname;

   int weight;

   //PersonTest05[] person=new PersonTest05[100];//通過綁定就以上屬性

   public static void main(String[] args){

      //建立一個對象

      int x=5;

      //new PersonTest05()建立真正的對象,并将起始位址傳回給person變量

      PersonTest05person=new PersonTest05();//person隻是引用,指向堆上真正的對象

      //通過    .  可以通路類的成員

      person.name="蓉蓉";

      person.age=18;

      person.weight=40;    

      //PersonTest05 person2;

      //person2.name="heihei";//沒有通過new一個真正的對象,所有沒有引用,錯誤的。

   }

}//變量存放了誰的位址,就說明指向了誰,引用了誰。

4、成員變量的作用域是整個類。(成員變量有預設值,局部變量沒有預設值)

在局部變量的作用域内,起作用的是局部變量。即,成員變量被局部變量所隐藏。需要通路成員變量用.this通路

5、       方法(實作功能)

實作了代碼重用

person.computer(x,y);  //調用方法computer,跳轉到方法内執行

public void computer(int a,int b){

      int sum=a+b;

      int sub=a-b;

      System.out.println(sum);

      System.out.println(sub);

}

每建立一個對象,就會配置設定新的空間,每個對象都有自己的成員變量,方法共享

6、   參數傳遞(不管參數的類型是什麼,參數傳遞永遠是值傳遞。)

基本類型:在方法内,形參的改變無法反作用于實參

引用類型:可以讓實參和形參指向相同的對象,進而可以通過形參來改變内部的值(成員變量的值)。但是,無法改變實參本身(引用本身)。

Class car{

String color=”紅色”

Int num=4;

//運作行為

Void run(){

System.out.println(color+num);

}

}

Class carDemo

{public static void main(String[] args){

Car c=new Car();  //c是類類型變量,指向對象

//改變顔色,指揮對象做事物,方式:對象。對象成員

c.color=”blue”;

c.run();    //藍色

Car c1=new Car();

C1.run;  //紅色

}

}

public classBank5 {

    int money;//餘額

public void despite(int amount){

money+=amount;

}

Public void withdraw(int amount){

Money=money-amount

}