java學習筆記 --- 物件導向2

來源:互聯網
上載者:User

標籤:this關鍵字   his   border   nbsp   技術   接受   stat   xxx   技術分享   

一、匿名對象 
  (1)沒有名字的對象
  (2)應用情境
      A:調用方法,僅僅只調用一次的時候。

      

class Car{    //描述屬性。顏色,輪胎數。    String color;    int number;    //描述行為。    void run()    {        System.out.println(color+":"+number);    }}class CarDemo{    public static void main(String[] args)    {            //採用匿名對象調用方法        new Car().run();        new Car().run();     }}


      B:可以作為實際參數傳遞。

    


 
class Student {    public void show() {        System.out.println("我愛學習");    }}class StudentDemo {    public void method(Student s) {        s.show();    }}class NoNameDemo {    public static void main(String[] args) {        //帶名字的調用        Student s = new Student();        s.show();        s.show();        System.out.println("--------------");                //匿名對象        //new Student();        //匿名對象調用方法        new Student().show();        new Student().show(); //這裡其實是重新建立了一個新的對象        System.out.println("--------------");                        //匿名對象作為實際參數傳遞        StudentDemo sd = new StudentDemo();        //Student ss = new Student();        //sd.method(ss); //這裡的s是一個實際參數        //匿名對象        sd.method(new Student());                //在來一個        new StudentDemo().method(new Student());     }}

 

 


 

 

  

二、基本類型和參考型別作為參數傳遞的區別

   1、基本類型作為參數傳遞(main方法中值不變)

class Demo

{

       public static void main(String[] args)

       {

              int x = 4;

              show(x);

              System.out.println("x="+x);//4

       }

       public static void show(int x)

       {

              x = 5;

             

       }

}

 

 

 

 

  說明:

    基本類型作為參數傳遞時,其實就是將基本類型變數x空間中的值複製了一份傳遞給調用的方法show(),當在show()方法中x接受到了複製的值,再在show()方法中對x變數進行操作,這時只會影響到show中的x。當show方法執行完成,彈棧後,程式又回到main方法執行,main方法中的x值還是原來的值。

 

2、引用參數作為值傳遞

  

說明:

  當引用變數作為參數傳遞時,這時其實是將引用變數空間中的記憶體位址(引用)複製了一份傳遞給了show方法的d引用變數。這時會有兩個引用同時指向堆中的同一個對象。當執行show方法中的d.x=6時,會根據d所持有的引用找到堆中的對象,並將其x屬性的值改為6,show方法彈棧。由於是兩個引用指向同一個對象,不管是哪一個引用改變了引用的所指向的對象的中的值,其他引用再次使用都是改變後的值。

 

三、封裝

  (1)隱藏實現細節,提供公用的訪問方式
   (2)好處:
      A:隱藏實現細節,提供公用的訪問方式
      B:提高代碼的複用性
      C:提高代碼的安全性
   (3)設計原則
      把不想讓外界知道的實現細節給隱藏起來,提供公用的訪問方式
   (4)private是封裝的一種體現。
      封裝:類,方法,private修飾成員變數

  (5)使用setXXX(),getXXX()對外提供

四、構造方法

  (1)作用:用於對對象的資料進行初始化
  (2)格式:
        A:方法名和類名相同
        B:沒有傳回值類型,連void都不能有
        C:沒有傳回值

     修飾符 構造方法名(參數列表){

      }

/*    構造方法:        給對象的資料進行初始化    格式:        A:方法名與類名相同        B:沒有傳回值類型,連void都沒有        C:沒有具體的傳回值*/class Student {    private String name; //null    private int age; //0        public Student() {        System.out.println("這是構造方法");    }}class ConstructDemo {    public static void main(String[] args) {        //建立對象        Student s = new Student();        System.out.println(s); //[email protected]    }}

 


  
          思考題:構造方法中可不可以有return語句呢?
          可以。而是我們寫成這個樣子就OK了:return;
          其實,在任何的void類型的方法的最後你都可以寫上:return;
   (3)構造方法的注意事項
      A:如果我們沒寫構造方法,系統將提供一個預設的無參構造方法
      B:如果我們給出了構造方法,系統將不再提供預設構造方法
         如果這個時候,我們要使用無參構造方法,就必須自己給出。
         推薦:永遠手動自己給出無參構造方法。

     C:一個類中可以有多個建構函式,多個建構函式是以重載的形式存在的

 

     D:建構函式中也是有return語句的,用於結束初始化動作。

     E:建構函式是可以被private修飾的,作用:其他程式無法建立該類的對象
   (4)給成員變數賦值的方式
      A:setXxx()
      B:帶參構造方法

 

   (5)一般方法和構造方法的區別    

    建構函式在對象建立時就執行了,而且只執行一次。

 

    一般函數是在對象建立後,需要使用時才被對象調用,並可以被多次調用。

   思考:

      有了建構函式之後可以對對象的屬性進行初始化,那麼還需要對應的set和get方法嗎?

      需要相應的set和get方法,因為對象在建立之後需要修改和訪問相應的屬性值時在,這時只能通過set或者get方法來操作。

 五、this關鍵字

    (1)代表當前類的引用對象
        記住:哪個對象調用方法,該方法內部的this就代表那個對象

    (2)調用其他建構函式的語句必須定義在建構函式的第一行,原因是初始化動作要最先執行。

java學習筆記 --- 物件導向2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.