C#学习(2)类,对象,类成员

  • 类(Class)是现实世界事物的模型
  • 类与对象的关系
    • 什么时候叫“对象”,什么时候叫“实例”
    • 引用变量和实例的关系
  • 类的三大成员
    • 属性(Property)
    • 方法(Method)
    • 事件(Event)
  • 类的静态成员与实例成员
    • 关于“绑定”(Binding)

类是现实世界事物的模型

  • 类是对现实世界事物进行抽象所得到的结果
    • 事物包括“物质”(实力)与“运动”(逻辑)
    • 建模是一个去伪存真,由表及里的过程

类与对象的关系

  • 对象也叫实例,是类经过“实例化”后得到的内存中的实体
  • 依照类,可以创建对象,这就是“实例化”
    • 现实世界常称“对象”,程序世界常称“实例”
    • 二者并无太大区别,常常混用
  • 使用new操作符创建类的实例
  • 引用变量与实例的关系
    • 孩子(引用变量)和气球(实例)
    • 气球不一定有孩子牵着
    • 多个孩子可以使用各自的绳子牵着同一个气球,也可以都通过一根绳子牵着气球
using System.Windows.Forms;

namespace ClassAndInstance
{
    class Program
    {
        static void Main(string[] arg)
        {
            Form myForm; //声明一个引用变量
            myForm = new Form();//使用引用变量来引用一个新创建的实例
            myForm.Text = "MyForm!";
            myForm.ShowDialog();
        }
    }
}

类的三大成员

  • 属性(Property)
    • 存储数据,组合起来表示类或对象当前状态
  • 方法(Method)
    • 由C语言中的函数(function)进化而来,表示类或对象“能做什么”
    • 工作中90%的时间是在与方法打交道,因为它是“真正做事”,“构成逻辑”的成员
 class Program
    {
        static void Main(string[] arg)
        {
            double result = Math.Pow(2,2);
            Console.WriteLine(result);
        }
    }
  • 事件(Event)
    • 类和对象通知其他类或事件的机制,为C#所特有(Java通过其他办法实现这个机制)
    • 善用事件机制十分重要

使用WPF程序演示事件机制:

using System.Windows.Threading;

namespace Event
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DispatcherTimer timer = new DispatcherTimer();//引用变量timer,将Dispatchertiemr类实例化
            timer.Interval = TimeSpan.FromSeconds(1);//赋予timer属性(时间间隔1s)
            timer.Tick += Timer_Tick;//挂接事件处理器。每当Tick事件触发,Timer_Tick函数执行一次
            timer.Start();//开始执行
        }

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

执行结果:实现简易桌面时钟
实现简易桌面时钟

  • 使用MSDN文档
  • 某些特殊类或对象在成员方面侧重点不同
    • 模型类或对象重在属性,如Entity Framework
    • 工具类或对象重在方法,如Math,Console
    • 通知类或对象重在事件,如各种Timer

静态成员与实例成员

  • 静态(Static)成员在语义上表示它是“类的成员”
  • 实例(非静态)成员在语义表示它是“对象的成员”
  • 绑定(Binding)指的是编译器如何把一个成员与类或对象关联起来
    • “.”操作符——成员访问
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello");//WriteLine是Console类的静态成员方法。可直接用"."操作符访问

            Form myForm = new Form();//先对Form类进行实例化
            myForm.Text = "MyForm";//实例化后访问实例成员属性
            myForm.ShowDialog();//实例化后访问实例成员方法
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值