温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#类和对象详细介绍

发布时间:2021-09-17 20:27:39 来源:亿速云 阅读:152 作者:chen 栏目:开发技术

本篇内容主要讲解“C#类和对象详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#类和对象详细介绍”吧!

目录
  • 一、对象的定义和创建

  • 二、、对象的初始化

    • 1. 借助构造函数或使用

    • 2. 实例构造函数

    • 3. 静态构造

  • 三、对象的引用

    一、对象的定义和创建

    定义类对象的方法为:

    类名 对象名;

    类是引用类型的,当定义了对象之后,系统会为数据引用分配存储空间,但是用来保存对象的实际数据的空间并没有分配。

    对象的创建

    创建对象时需要使用new运算符new运算符可以为任意指定类类型的实例分配并初始化内存。

    创建对象的语法形式如下: 对象名 = new类名();

    代码示例,对象的定义和创建:

    class Program
    {
        static void Main(string[] args)
        {
            //对象的定义和创建
            Test t = new Test();
            
            //或者 先定义
            Test t1;
            // 使用时创建
            t1 = new Test();
        }
    }
    
    class Test
    {
        
    }

    行对象的创建时,需要注意:

    • new运算符后为要创建的对象所属类的类名

    • 类名后的圆括号不能省略

    • 可以将对象的定义和创建合并在一起

    二、、对象的初始化

    C#中实现对象初始化的方式有两种:

    1. 借助构造函数或使用

    2.  对象初始化列表。

    1. 借助构造函数或使用

    new运算表达式的圆括号中所带参数并不是任意的,圆括号中是否支持参数、可以携带几个参数是由对象所属类的构造函数形式决定的。

    C#的类支持两种构造函数:实例构造函数和静态构造函数

    实例构造函数是实现初始化类实例所需操作的成员。

    静态构造函数是一种用于在第一次加载类本身时实现其初始化所需操作的成员。

    C#类的静态构造函数初始化类层次的项目。通常,静态构造函数初始化类的静态字段。

    类层次的项目初始化必须在任何静态成员被引用之前,同时也必须在该类的所有对象创建之前。

    2. 实例构造函数

    实例构造函数是一个特殊的方法,它在创建类的每个新对象时执行,用以初始化对象的状态。

    实例构造函数应该声明为public

    下面是实例构造函数的一般定义形式:

    // 无参构造
    public 类名()
    {
        函数体
    }
    // 带参构造
    public 类名(参数列表)
    {
        函数体
    }

    定义实例构造函数时需注意:

    • 实例构造函数可以带有参数,也可以不带参数,

    • 实例构造函数的参数设置决定了对象创建时new运算表达式中圆括号中的参数格式;

    • 实例构造函数可以重载。

    其他说明:

    • 当类的声明中没有显式提供实例构造函数时,编译器会提供一个隐式的默认构造函数。

    • 默认构造函数不带参数,并且方法体为空。

    • 调用默认构造函数实现对象创建时,new运算表达式后的圆括号内不能带有参数。

    3. 静态构造

    静态构造函数:

    • C#类的静态构造函数初始化类层次的项目。

    • 通常,静态构造函数初始化类的静态字段。

    • 类层次的项目初始化必须在任何静态成员被引用之前,同时也必须在该类的所有对象创建之前。

    使用静态构造函数时,需注意:

    • 静态构造函数只有一个,不能重载,并且不能带参数;

    • 静态构造函数不能有访问修饰符,它由系统自动调用;

    • 类的静态构造函数和实例构造函数可以共存;

    • 静态构造函数不能访问类的实例成员。

    代码示例:

    class Program
    {
        static void Main(string[] args)
        {
            Test t = new Test();
            // 输出: 0,0,1
            Console.WriteLine(t.X + "," + t.Y + "," + Test.Z)
    
            Test t1 = new Test(1, 2);
            // 输出: 1,2,2
            Console.WriteLine(t1.X + "," + t1.Y + "," + Test.
                        
            Test t2 = new Test(3, 4);
            // 输出: 3,4,3
            Console.WriteLine(t2.X + "," + t2.Y + "," + Test.
    
            Console.ReadLine();
        }
    }
    
    class Test
    {
       public int X = 0;
       public int Y = 0;
    
       public static int Z = 0;
    
        // 无参构造
        public Test() { Z++; }
    
        // 带参构造
        public Test(int X, int Y)
        {
            this.X = X;
            this.Y = Y;
            Z++;
        }
    
        // 静态构造 -- 初始化Z值
        static Test()
        {
            Z = 0;
        }
    }

    三、对象的引用

    对象成员的引用形式为:

    对象名.实例成员名
    // 或者
    对象名.实例成员名(实参列表)

    对象的运算同一类的两个对象支持赋值、相等与不相等运算如下所示:

    Test t = new Test();
    Test t1 = new Test();
    
    // 输出:false
    Console.WriteLine(t == t1);
    // 对象的赋值操作
    t = t1;
    // 输出:true --> 此时t,t1表示为同一对象
    Console.WriteLine(t == t1);

    到此,相信大家对“C#类和对象详细介绍”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI