3.2-物件導向(類與對象之間的關係)

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   使用   

3.2 類與對象的關係

使用電腦語言就是不斷的在描述現實生活中的事物。

java中描述事物通過類的形式體現,類是具體事物的抽象,概念上的定義。

對象即是該類事物實實在在存在的個體 。

3.2.1  類與對象( 圖例)


3.2.2  類的定義
生活中描述事物無非就是描述事物的屬性和行為。
?  如:人有身高,體重等屬性,有說話,打球等行為。
Java中用類class來描述事物也是如此
?  屬性:對應類中的成員變數。
?  行為:對應類中的成員函數。
定義類其實在定義類中的成員(成員變數和成員函數)。

3.2.3  成員變數和局部變數的區別?
成員變數:
?  成員變數定義在類中,在整個類中都可以被訪問。
?  成員變數隨著對象的建立而建立,存在於對象所在的堆記憶體中。
?  成員變數有預設初始化值。
局部變數:
?  局部變數只定義在局部範圍內,如:函數內,語句內等。
?  局部變數存在於棧記憶體中。
?  作用的範圍結束,變數空間會自動釋放。
?  局部變數沒有預設初始化值。

3.2.4  建立對象,使用對象

class Car//對Car這類事物進行描述{String color = "red";int num = 4;void show(){System.out.println("color="+color+"..num="+num);}}class CarDemo{public static void main(String[] args){Car c = new Car();//建立對象c.color = "black";//對對象的屬性進行修改c.show();//使用對象的功能。}}

3.2.5  對象記憶體結構
Car c1 = new Car();c1.color="blue";
Car c2 = new Car();


3.2.6  匿名對象
匿名對象是對象的簡化形式
匿名對象兩種使用方式
?  當對對象 方法僅進行 一次調用的時
?  匿名對象可以作為實際參數進行傳遞

/*用java語言對現實生活中的事物進行描述。通過類的形式來體現的。怎麼描述呢?對於事物描述通常只關注兩方面。一個是屬性,一個是行為。只要明確該事物的屬性和行為並定義在類中即可。對象:其實就是該類事物實實在在存在的個體。類與對象之間的關係?類:事物的描述。對象:該類事物的執行個體。在java中通過new來建立的。*//*描述小汽車分析:1,屬性。輪胎數。顏色。 2,行為。運行。定義類其實就是在定義類中的成員。成員:成員變數<-->屬性,成員函數<-->行為。成員變數和局部變數的區別:1,成員變數定義在類中,整個類中都可以訪問。局部變數定義在函數,語句,局部代碼塊中,只在所屬的地區有效。2,成員變數存在於堆記憶體的對象中。局部變數存在於棧記憶體的方法中。3,成員變數隨著對象的建立而存在,隨著對象的消失而消失。局部變數隨著所屬地區的執行而存在,隨著所屬地區的結束而釋放。4,成員變數都有預設初始化值。局部變數沒有預設初始化值。 */class Car{int num;String color;void run(){//int num = 10;System.out.println(num+"..."+color);}}class  CarDemo{public static void main(String[] args) {//在電腦中建立一個car的執行個體。通過new關鍵字。 //Car c = new Car();// c就是一個類類型的引用變數,指向了該類的對象。//c.num = 4;//c.color = "red";//c.run();//要使用對象中的內容可以通過  對象.成員 的形式來完成調用。//Car c1 = new Car();//c1.num = 4;//c1.color = "red";//Car c2 = new Car();//c2.num = 4;//c2.color = "red";//Car c1 = new Car();//Car c2 = new Car();//show(c1);//show(c2);/*匿名對象。沒有名字的對象 。new Car();//匿名對象。其實就是定義對象的簡寫格式。Car c = new Car();c.run();new Car().run();1,當對象對方法僅進行一次調用的時候,就可以簡化成匿名對象。new Car().num = 5;new Car().color = "green";new Car().run();2,匿名對象可以作為實際參數進行傳遞。*///Car c1 = new Car();//show(c1);show(new Car());}//汽車改裝廠。public static void show(Car c)//類類型的變數一定指向對象。要不就是null。 {c.num = 3;c.color = "black";System.out.println(c.num+"..."+c.color);}}

基礎資料型別 (Elementary Data Type)參數傳遞和引用資料類型參數傳遞

//基礎資料型別 (Elementary Data Type)參數傳遞class Demo {public static void main(String[] args) {int x = 3;show(x);System.out.println("x="+x);}public static void show(int x){x = 4;}}public class Demo {        private static int x;      public static void main(String[] args) {          name(x);          System.out.println(x);      }      public static void name(int x){          x++;      }    } //引用資料類型參數傳遞class Demo{int x = 3;public static void main(String[] args){Demo d = new Demo();d.x = 9;show(d);System.out.println(d.x);}public static void show(Demo d){d.x = 4;}}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.