C#中屬性和方法的區別

來源:互聯網
上載者:User

    class Person
    {
 

        private string name = "Jack"; //欄位
        public string Name  //屬性  only read
        {
            get
            {
                return name;
            }
        }
 
        public int weight; //欄位

        private int age;    //欄位
        public int Age  //屬性
        {
            get
            {
                return age;
            }
            set
            {
                if (value > 0 && value < 150) //控制私人欄位的可訪問行
                {
                    age = value;
                }
                else
                {
                    age = 0;
                }
            }
        }

        public void Oneperson()     //方法
        {
            Console.WriteLine("name :{0}", name);
            Console.WriteLine("weight:{0}", weight);
            Console.WriteLine("age: {0}", age);
        }

        public static void staticOneperson(out string name, out int weight, out int age)  //靜態方法
        {
            name = "aa";
            weight = 66;
            age = 100;
        }
    }


           Person onePerson = new Person();
            onePerson.Age = -2; // invalid data
            onePerson.weight = 100;
            onePerson.Oneperson();

            onePerson.Age = 21;   //Age 通過共有Age訪問私人欄位age
            onePerson.Oneperson(); //使用執行個體對象調用執行個體方法

          Console .WriteLine("This is {0} info." ,onePerson.Name);

            string na;
            int we;
            int ag;
            Person.staticOneperson(out na, out we, out ag); //使用類名調用靜態方法
            Console .WriteLine ("sname: {0},sweight: {1},sage: {2}", na, we, ag);  
            
屬性的類型和欄位類型必須一致 Age age  都是string

屬性只有get時: 唯讀屬性;
只有set時:         唯寫屬性;

建議類內部的敏感欄位使用屬性來控制訪問: id ,age;

封裝欄位:(屬性和欄位綁到一起)
封裝是物件導向的三大特徵之一: 避免非法資料的訪問, 保證資料的完整性

使用static修飾的方法稱為靜態方法, 使用執行個體對象調用的方法交執行個體化方法

靜態方法                                執行個體化方法
static                                     不要關鍵字static
使用類名調用                        使用執行個體對象調用
可以訪問靜態成員                 可以直接存取靜態成員
不可以直接存取執行個體成員       可以
不能直接調用執行個體方法          可以
調用前初始化                        執行個體化對象時初始化

重載
為什麼要重載: 一個方法能實現不同類型的操作。
實現方法: 同名不同傳回型別,不同參數類型,不同參數的個數
注意:  不容許重載方法僅僅是傳回值不同

建構函式
類中一個特殊的方法 建構函式與類名相同, 不返回任何值,可初始化成員變數
public Person(string name, int age)
{
    //this.Name = name;  //name only read
     this.Age = age;
 }  
 Person Mark = new Person("Mark", 29);  //new 關鍵字 執行個體化對象調用建構函式
 Mark.Oneperson();  //name only read, name is Jack not Mark

建構函式重載 同樣同名 不同參

聯繫我們

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