24.静态类与实例类

前言

在前面我们所学习或练习的Student 类中,其实我们使用的都是实例类,所以在本次的课程中给大家带来了静态类的使用方法以及其相较于实例类的区别。

在开始代码演示之前我们需要先明确三个观点:

  1. 静态类中只能有静态成员。
  2. 静态类中没有构造函数。
  3. 实例类可以拥有静态成员,但静态类中不能有实例成员。

所以我们已下所有的代码演示都围绕以上三点展开。

1.静态类中只能有静态成员

在访问级别后面加上 static 修饰词,即代表该类或者类成员为静态的。所以我们看一下下面的静态类与成员与实例类的对比。

    /// <summary>
    /// 静态类
    /// </summary>
    internal static class Class2
    {
        /// <summary>
        /// 静态字段
        /// </summary>
        public static int age;
        /// <summary>
        /// 静态属性
        /// </summary>
        public static string name { get; set; }
        /// <summary>
        /// 静态方法
        /// </summary>
        public static void SayHi()
        {
            Console.WriteLine("Hi!");
        }
    }
    /// <summary>
    /// 实例类
    /// </summary>
    internal class Class1
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public Class1()
        {
        }
        /// <summary>
        /// 字段
        /// </summary>
        public int age;
        /// <summary>
        /// 属性
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 方法
        /// </summary>
        public void SayHi()
        {
            Console.WriteLine("Hi!");
        }
    }

可以看的出来差距就在于 static 这个修饰词上。但你仔细观察就会发现,静态类中没有 构造函数 ,那是因为静态类无需实例化,我们看下下面的演示:

2.静态类中没有构造函数

            #region 实例类的使用方式
            Class1 class1 = new Class1();
            class1.age = 1;
            class1.name = "ele";
            class1.SayHi();
            #endregion
            #region 静态类的使用方式
            Class2.age = 12;
            Class2.name = "eee";
            Class2.SayHi();
            #endregion

可以看到使用静态类,直接就是 类名.成员名,就可以进行赋值或者调用方法,但是实例类需要进行 Class1 class1 = new Class1(); 实例化这一步操作,才能够访问其成员。但是呢成也萧何败也萧何,因为实例类需要进行实例操作,所以可以有多个对象,且每个对象之间都是独立的;但是静态类无法实例化,所以没有多个对象这一说法。所以不够灵活,而且静态类在创建之初就处在内存当中,如果你静态类滥用的话,对于资源要求会提高。

3.实例类中可以拥有静态成员,但静态类中不能有实例成员

这没有什么好说的,当你静态类中的成员没有附带 static 修饰词,则IDE会进行报错,让你无法进行编译,但实例类中能够声明并使用静态成员,且调用静态成员无需使用对象。

© 版权声明
THE END
点赞522 分享
和此文作者聊聊 抢沙发

    暂无评论内容