1. 程式人生 > >C#語言————第三章 使用屬性升級MyBank

C#語言————第三章 使用屬性升級MyBank

********常見的訪問修飾符*********

       public :公共的,可以在其他類中訪問

       private:私有的,只有在本類裡可以使用,其他的類無權訪問

       類的預設訪問修飾符 internal同一程式集中的檔案內才是可訪問的,後期講

       欄位和方法的預設訪問修飾符是:

private

**************值傳遞和引用傳遞*************

       ①:值傳遞:把引數的值傳到方法裡面,如果在被呼叫的方法中對引數的值進行了修改,在方法呼叫之後,不保留對引數的修改。

       ②:引用傳遞:引用傳遞的方式,如果在被呼叫的方法中對引數的值進行了修改,在方法呼叫之後,仍然保留對引數的修改。

          按引用傳遞:

ref

          形參與實參同時加ref

          定義方法

 Swap(ref int num1,ref int num2);

          呼叫方法

    Swap(ref num1,ref num2);

*********this用法

*************

      this:表示當前物件,通過this可以訪問當前類中的成員

      作用:當前變數與區域性變數同名的情況下,用於區分變數的(this訪問的是成員變數)

*******c#中的屬性*************

      1:用方法保證資料的安全    

      Private  int  _age;    //年齡

      //通過方法訪問年齡的值          

        public int GetAge()

        {

            return this._age;

        }

      //對年齡的輸入加以限制

        public void SetAge(int age)

        {

            if (age < 0 || age > 100)

            {

                this._age = 19;

            }

            else

            {

                this._age = age;

            }

        }

  

 

      2:用屬性實現欄位的 (封裝隱藏內部細節避免不合理賦值)

       ①:屬性:如果要訪問類中的私有欄位,需要通過getset訪問器實現,這種結合了欄位和方法的實現方式,稱之為屬性

 

       ②:屬性的語法:

           

         

  private int _age;

        

           public int Age

           {

             get{ return _age;}

             set{ _age=value; }  

           }

       對

            public int Age

           {

              get

             {

                return _age;

              }

              set

              {

                if (value < 0 || value > 100)

                {

                    _age = 19;

                }

                else

               {

                    _age = value;

                }

             }

          }

  

       ③:屬性的資料型別

          定義類中的一個屬性時,屬性的資料型別(int Age)必須與他所訪問的欄位型別(int _age)一致。

 

       ④:屬性的訪問型別

             get訪問器(只讀):訪問get訪問器

             set訪問器(只寫):執行set訪問器

 

       ⑤:在編碼中快速的建立屬性

           選中私有欄位  重構  封裝欄位(游標放在所封裝的欄位上,ctrl+R+E 生成屬性)

       ⑥:物件初始化器

           Student student = new Student(){name="Tom",Age=20};

 

***********面向物件的封裝***************

        封裝是將資料和操作方法儲存在一起的技術(安全)

        實現:將成員變數、方法和屬性以類的方式進行封裝,在類或物件之間通過訊息傳遞進行相互交流,而傳遞的資訊是通過呼叫類公開的方法完成的

        特點:隱藏內部實現,對外只暴露對類的基本操作,不影響其他物件對類的實現

欄位:類中的成員變數

屬性:封裝欄位,本質是方法

     語法:

     public 資料型別 屬性名

     {

  get{return 欄位;}

  set{欄位 = value;}

     }

     屬性的資料型別與所封裝欄位的資料型別一致

     屬性名與欄位名相同,但使用帕斯卡命名法