C# 類基礎知識

來源:互聯網
上載者:User

標籤:style   color   使用   for   sp   代碼   on   c   new   

變數範圍

變數名:變數名就像實驗室中容器的編號。{} 相當於實驗室。

           變數的定義:

                           有嵌套關係的{}語句塊中只允許定義唯一的變數。

                           沒有嵌套關係的{}語句塊可以定義同名變數。

        變數的有效範圍:

                             變數在其聲明的{}和它的嵌套子塊{}有效;

        變數的提示:

                        變數盡量在用之前最近的位置聲明。盡量減少有效範圍。

                    從邏輯上講   for (int i = 0; i < 5; i++) { }     if(){}else {}     while(){ }  是一個整體

                         相當於 {for (int i = 0; i < 5; i++) { }}   { if(){}else {} }  {while(){ }}

基本概念

              類是:具有相同屬性和行為對象的抽象

           屬性值:在物件導向編程裡,欄位作為儲存屬性值的變數。欄位聲明時可以不賦值,會有預設的值。   

              屬性:使用特殊的“行為”來表現,一對get/set行為用來展現對象的屬性。get/set稱為屬性的“訪問器”,

              方法:方法就是類能夠執行的動作。函數中定義的成員使用前必須賦值。

                        物件導向的三個特性:封裝、繼承、多態。

                       類中只能定義欄位、方法等不能包含其他代碼。

       this:表示“當前執行個體/當前對象”,即哪一個對象正在操作屬性訪問器,this就表示哪個對象。

存取權限/存取權限  

                控制類或類成員在哪些地方可以被訪問,這樣達到物件導向中“封裝”的目的。

            類成員預設為private

public    公開      對訪問成員沒有層級限制

private   私人      只能在類的內部訪問

protected 受保護的   只能由該類和該類的衍生類別訪問,不管該衍生類別和基類是否在同一程式集中

internal   內部的    訪問僅限於程式集中

類預設是internal

public    公開      對訪問成員沒有層級限制

internal   內部的    訪問僅限於程式集中

 

 

            Person p1 = new Person();

            p1.Age =20;//修p1所指向對象的Age欄位值

 

            Person p2 = p1;//p2指向p1當前指向的對象

            p2.Age = 99;

 

屬性    習慣用法:屬性開頭字母大寫,欄位開頭字母小寫

          欄位設為private的原因。防止直接對欄位非法進行讀取或修改操作。

        private int age;

        //當進行讀取或修改操作時,確定不需要對操作進行限制時可以簡寫

        public int Age {  get;  set;  }

        //當進行讀取或修改操作時,需要對讀取或修改操作進行限制時

        public int Age{  get { return age; }  set { age = value; }   }

       反編譯:

        public void set_Age(int value) {

            this.age = value;

        }

        public int get_Age() {

            return this.age;

        }

                備忘:非簡寫的情況下:可以只用set或者只用get就可以定義唯讀或者唯寫屬性。

  簡寫情況下:set和get必須同時存在。

建構函式:

建構函式中對對象進行初始化。是用來建立對象的特殊函數,函數名和類名一樣,沒有傳回值,連void都不用。

建構函式可以有參數,new對象的時候傳遞函數參數即可。可以重載,也就是有多個參數不同的建構函式。

如果不指定建構函式,則類有一個預設的無參建構函式。如果指定了建構函式,則不再有預設的無參建構函式,如果需要無參建構函式,則需要自己來寫。

建構函式的調用順序(父子)

常量

        在類中定義的常量,對於類的任何執行個體都不變。沒有必要通過類的執行個體去調用。

         class Program {  public const double PI = 3.15;  }

         引用:在類外部,Program.PI;   類名.常量名  的形式引用  

        const常量。常量名所有字母全大寫。一定不會變化的值才能聲明為常量。

靜態成員

        也可以理解為全域成員。如:中國人類 有成員 name,language 。name會因為不同的人而有不同的值。而language僅與中國人類有關。因為所有人都是漢語。

    在類外部參考:類名.變數名  類名.方法名()

            int a = Person.age; Person.SetName();

    class Person{

        //靜態成員不與類的任何執行個體相關聯。對於類只有這一份。起到全域的作用。

        public string name = "王菲";

        public static int age = 15;

        //在類內部的靜態方法中,不能調用非靜態變數和方法。

        public static void SetName() {

            //string s = name;

            //SetAge();

        }

        //在類內部的非靜態方法中,可以調用靜態變數和方法。

        public void SetAge() {

            int i = age;

            SetName();

        }

    }

 

 

C# 類基礎知識

聯繫我們

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