2015年11月6日 星期五

C# - 靜態(static)修飾字

學習重點:
  • 若使用static修飾字於類別方法,則不需建立物件就可以直接該方法
  • 若使用static修飾字於變數,所有同類別物件將共用同該變數
  • C#中內建一個 Math 的類別提供常用的數學函式,且為static類別,該類別無法建立物件

主程式: 
        private void button1_Click(object sender, EventArgs e)
        {
            int a = 10, b = 20;

            /* Math m = new Math();
               int c = m.max(a,b);
               可合併成以下寫法
            */
            int c = MyMath.max(a, b); //由於使用了static修飾字,可直接使用class方法
            int d = Math.Max(a, b); //使用內建的Math類別(static類別)          

            MessageBox.Show("自訂類別MyMath:"+c+" ,系統內建Math:" + d);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Student s1 = new Student();
            Student s2 = new Student();

            s1.Score = 20;
            s2.Score = 80;

            Student.PassScore = 60; //由於使用static宣告,該屬性在此類別中為共用的 
            MessageBox.Show("考生1" + s1.ispass()+ ",考生2" + s2.ispass()); 
        }

MyMath 類別  :
    class MyMath
    {
        public static int max(int a, int b)
        {
            int result;

            if (a > b) result = a;
            else result = b;
            return result;
        }  
    }

Student 類別:
    class Student
    {
        //屬性
        public int Score;
        public static int PassScore;

        //方法判斷是否及格
        public string ispass()
        {
            if(Score >= PassScore)  return "及格";
            else return "不及格";
        } 
    }

執行結果:






沒有留言:

張貼留言