1. 程式人生 > >P4 類、對象、類成員簡介

P4 類、對象、類成員簡介

結束 模型 sta rabl 工作 tar 小數點 sof nav

本節內容

類(class)是顯示世界事物的模型。

現實中的一架飛機========================>>>抽象為程序世界中的類

技術分享圖片

類與對象的關系

  1. 對象也叫做實例,是類經過實例化得到的內存中的事宜
    • 有些類不能被實例化,如數學,我們不能說一個數學
  2. 依照類,我們可以創建對象>>>這就是實例化
    • 現實世界中常稱對象,程序世界中常稱實例,二者並無太大區別,常常混用,不用太糾結。
  3. 使用new操作符創建對象

△14:15開始編寫程序>>>接下來我們自己動手來編寫程序,創建一個實例。

using System;
using
System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace demo2 { class Program { static void Main(string[] args) { Form myForm = new Form(); myForm.ShowDialog(); } } }

  4.引用變量與實例的關系

    Form myForm(引用變量) = new Form()(實例);

    引用變量相當於一個小孩,而實例是一個氣球。形象比喻成:一個小孩牽著一個氣球。

    *如果氣球沒有牽著就會飛掉,實例會被垃圾回收給釋放掉。

    下面我們來看另外一個例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace
demo2 { class Program { static void Main(string[] args) { Form myForm1; Form myForm2; myForm1 = new Form(); myForm2 = myForm1; myForm2.ShowDialog(); } } }

這種情況相當於是兩個孩子同時牽著一個氣球

常見的有下面三種情況

  1.一個小孩牽著一個氣球。

  2.一個小孩沒有牽氣球。

  3.多個小孩同時牽著一個氣球。

類的三個成員

1.屬性(property)

  *存儲數據,組合起來表示類或對象當前的狀態。
2.方法(method)

  *由C語言的(function)進化而來,表示類能做什麽。

  *工作中90%的時間是在與方法打交道,因為他是類真正做事,構成邏輯的成員。

3.事件(event)!!!善用

  *類或對象通知其他類或對象的機制,為C#特有。

  *善用事件機制非常重要。

  **F1鍵可以打開MSDN文檔

某些特殊類或對象在成員方面側重點不用

  1.模型類或對象重在屬性:Entity,Framework。

  2.工具類重點在方法:math,console。

  3.通知類或對象重在事件:Time。

△42分鐘編寫數據庫

△50:36編寫WPF的time

接下來我們自己動手來編寫一個Time的例子吧。

技術分享圖片

代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;

namespace WPFTime
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DispatcherTimer time = new DispatcherTimer();
            time.Interval = TimeSpan.FromSeconds(1);
            time.Tick += Time_Tick;
            time.Start();
        }

        private void Time_Tick(object sender, EventArgs e)
        {
            this.timeTextBox.Text = DateTime.Now.ToString();
            //throw new NotImplementedException();
        }
    }
}

界面代碼如下:

<Window x:Class="WPFTime.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPFTime"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBox HorizontalAlignment="Left" Height="139" Margin="10,10,0,0" TextWrapping="Wrap" Name="timeTextBox" VerticalAlignment="Top" Width="774" FontSize="48"/>

    </Grid>
</Window>

靜態成員與實例成員

  *靜態(static)成員在語義上表示它是類的成員>>>與生俱來的,不需要實例化

  *實例(非靜態)陳冠在語義上表示它是“對象成員”。

  *綁定(binding)指的是編譯器如何把一個成員與類或對象關聯起來。

  **不可小覷的 . (小數點)操作符

△59:02開始寫例子

靜態方法示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace demo2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world!");
        }
    }
}

本節課結束。

P4 類、對象、類成員簡介