《C#语言入门详解》类成员和对象

C#入门详解-刘铁锰 类成员和对象

类(class)是现实世界事物的模型

类是对现实世界事物进行抽象所得到的结果

  • 事物包括“物质”(实体)与“运动”(逻辑)
  • 建模是一个去伪存真、由表及里的过程

类与对象的关系

对象也叫实列,是类经过“实例化”后得到的内存中的实体

  • Formally "instance" is synonymous with "object" ——对象和实列是一回事
  • “飞机”与“一架飞机”有何区别?天上有(一架)飞机——必需是实列飞,概念是不能飞的

依照类,我们可以创建对象,这就是“实例化”

  • 现实世界钟常称为“对象”,程序世界中称为“实例”
  • 二者并无太大区别,常常混用,初学者不必迷惑

使用new操作符创建类的实例

引用变量与实例的关系

  • 孩子与气球
  • 气球不一定有孩子牵着
  • 多个孩子可以使用各自的绳子牵着同一个气球,也可以都通过一根绳子牵着气球

类的三大成员

属性(Property)

  • 存储数据,组合起来表示类或对象当前的状态

方法(Method)

  • 由C语言中的函数(function)进化而来,表示类或对象“能做什么”
  • 工作中90%的时间是在与方法打交道,因为它是“真正做事”、“构成逻辑”的成员

事件(Event)

  • 类或对象通知其他类或对象的机制,为C#所特有(Java通过其他办法实现这个机制)
  • 善用事件机制非常重要

使用MSDN文档

某些特殊类或对象在成员方面侧重点不同

  • 模型类或对象重在属性,如Enity Framework
  • 工具类或对象重在方法,如Math, Console
  • 通知类或对象重在事件,如各种Timer

Math工具类

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

namespace ClassAndInstace
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double a = Math.Abs(-123.23);
            Console.WriteLine(a);
            double x = Math.Sqrt(4);
            Console.WriteLine(x); 
            double y = Math.Pow(2, 3);
            Console.WriteLine(y);

        }
    }
}

EventSample WPF解决方案

//...
using System.Windows.Threading; // 引入多线程命名空间

namespace EventSample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            // 简易桌面时钟
            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(1);
            timer.Tick += Timer_Tick; // 事件处理器,触发时调用Timer_Tick方法
            timer.Start();
        }

        private void Timer_Tick(object? sender, EventArgs e)
        {
            this.timeTextBox.Text = DateTime.Now.ToString();
        }
    }
}

静态成员和实列成员

静态(Static)成员在语义上表示它是“类的成员”

实例(非静态)成员在语义表示它是“对象成员”

绑定(Binding)指的是编译器如果把一个成员与类或对象关联起来

  • 不可小觑"."操作符——成员访问
posted @ 2021-12-23 11:45  Apostle浩  阅读(172)  评论(0编辑  收藏  举报