C#学习笔记-类、对象、类成员

类(class)

  在类与名称空间简单学习了类的概念。程序世界中的类是对现实世界的事物进行抽象的结果,类定义了事物的特点、行为,在一定程度上反映现实事物的样子。但类又舍弃了一些不必要的内容(在程序中没有涉及),是现实事物的模型。建模是一个由表及里的过程,向外提供了易于使用的接口,但是隐藏封装了内部的逻辑。

类与对象

  类实例化过后得到的内存中的实体称为对象或实例对象和实例没有区别。实例化指的是根据类来创建对象。在程序中,通常使用 new 操作符创建类对象,为类对象分配内存空间。

using System;
using System.Windows.Forms;

namespace ClassAndInstance {
    class Program
    {
        static void Main(string[] args)
        {
            //根据 Form 类创建类对象 fm
            //Form() 后的 () 表示实例在内存中创建后,使用相关的构造函数初始化类对象
            Form fm = new Form();
            fm.ShowDialog();
        }
    }
}

引用变量和类对象

  在下面的代码中,第5、6行的代码分别在内存中创建了两个 Form() 类对象,但是都没有相应的变量指向它们。就像气球一样,没有绳子牵着。内存垃圾收集器很快就会收回分配给它们的内存。如果要连续的操作同一个类对象,需要使用引用变量。如第8行代码所示,将 new 出来的Form() 对象赋值给引用变量 fm。引用变量 fm 只是指向相应的内存空间,提供了一个访问 Form 对象的途径。也可以使用其他的引用变量指向 fm 指向的内存空间,就像气球可以有很多绳子,可以通过任意一根绳子牵住气球,但是这些绳子牵的都是同一个气球。

 1 class Program
 2 {
 3     static void Main(string[] args)
 4     {
 5         (new Form()).Text = "Title";
 6         (new Form()).ShowDialog();
 7             
 8         Form fm = new Form();
 9         fm.Text = "Title";
10         fm.ShowDialog();
11     }
12 }

 类的三大成员

  属性,用来存储数据,通过各种属性组合起来表示类或对象当前的状态。

  方法,由C语言中的函数进化而来,用来表示类或对象能做什么,属于逻辑成员,通过方法来对数据进行各种操作。

  事件,类或对象通知其他类或对象的机制,为C#持有(Java通过其他机制实现)。

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

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

静态成员与实例成员

  静态成员语义上表示成员隶属于某个,不能隶属于某个对象。所有非静态的成员称为实例成员,表示成员属于某个对象,而不是某个类。例如人属于人类,人的身高是实例成员,而不是静态成员。人类的总数是静态成员,而不是实例成员。

static void Main(string[] args)
{
    //WriteLine()方法属于Console类的静态成员,因为此前并
    //没有实例化Console类。
    Console.WriteLine("Hello");
            
    //form对象的Text,ShowDialog()属于实例方法和实例属性
    Form form = new Form();
    form.Text = "Hello";
    form.ShowDialog();
}

 

 

posted @ 2024-01-23 20:45  owmt  阅读(11)  评论(0编辑  收藏  举报