2016年2月6日 星期六

C#物件與類別

1.物件(Object)與類別:

    • 物件具有屬性:
      • ex.
        David.Tall = 80;
        label1.Text = "Hello";
        label1.BackColor=Color.Yellow;
    • 物件具有方法:
      • ex.
        Car1.Move(100,200);
    • 物件要有訊息與事件:
      • ex.
        button1.Click+=new EventHandler(button1_Click);
        private void button1_Click(object sender, EventArgs e)
        {
            ......  //敘述區塊
        }
    • 物件要能被識別:
      • Car1.Fordward(); //Car1前進
        Car2.Backward(); //Car2後退
2.物件導向應用程式設計特性具有:
    • 抽象化:
      • 影片:

      • 程式碼:
-------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ch6_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        //函數
        private void Draw(int vType)
        {
            Graphics g;
            Pen p = new Pen(Color.Red);//建立一支紅色筆
            g = this.CreateGraphics();//取得畫布
            g.Clear(Color.White);//清除畫布
            switch(vType)
            {
                case 0:
                    g.DrawEllipse(p, 90, 30, 90, 30);
                    break;
                case 1:
                    g.DrawLine(p, 90, 50, 180, 100);
                    break;

                case 2:
                    g.DrawArc(p, 90,30,90,90,0,250);
                    break;


            }
        }

        private void btnCircle_Click(object sender, EventArgs e)
        {
            Draw(0);
        }

        private void btnLine_Click(object sender, EventArgs e)
        {
            Draw(1);
        }

        private void btnArc_Click(object sender, EventArgs e)
        {
            Draw(2);
        }
    }
}
--------------------------------------------------------------------------
    • 封裝:
      • 資料結構和操作資料結構的所有方法封裝在物件類別當中,外界無法存取該物件類布的資料結構
    • 繼承:
      • 父類別、子類別
    • 多型:
      • 物件可使用相同方法來操作不同類型的物件
    • 動態繫結:
      • 編譯器在進行編譯程式的階段時不將物件與方法聯繫在一起,而是將物件ㄤ法的位置建立成一個虛擬表格,在程式執行階段時再由虛擬表格去判斷該呼叫哪個物件的方法。

沒有留言:

張貼留言