返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >关于C# 类和对象详情
  • 285
分享到

关于C# 类和对象详情

2024-04-02 19:04:59 285人浏览 薄情痞子
摘要

目录一、对象的定义和创建二、、对象的初始化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);

对象之间除了可以进行比较,赋值操作之外。还可以至此isas运算符,isas运算符更多的应用于基类和派生类之间进行类型转换,详细说明在继承处讲解。

到此这篇关于关于C# 类和对象详情的文章就介绍到这了,更多相关C# 类和对象内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于C# 类和对象详情

本文链接: https://lsjlt.com/news/136099.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 关于C# 类和对象详情
    目录一、对象的定义和创建二、、对象的初始化1. 借助构造函数或使用2. 实例构造函数3. 静态构造三、对象的引用一、对象的定义和创建 定义类对象的方法为: 类名 对象名; 类是...
    99+
    2024-04-02
  • 关于C# 类的封装详情
    目录1、前言2、实例1、前言 法存取数据。除此之外,还可以控制数据的存取方式。在面向对象编程中,大多数都是以类作为数据封装的基本单位。类将数据和操作数据的方法结[成一个单位。设计类...
    99+
    2024-04-02
  • Java 中的类和对象详情
    目录1、类的定义2、类中变量的类型3、构造方法4、重载方法5、继承5.1 重写方法6、创建对象7、访问实例变量和方法8、比较对象8.1 使用 == 比较对象8.2 使用 equals...
    99+
    2024-04-02
  • 关于java中类和对象的详细介绍
    类和对象对象我们知道,代表现实世界中可以明确标识的一个实体(万物皆对象),每个对象都有自己独特的标识、状态和行为。类是具有相似特征和行为的事物的统称。使用一个通用类来定义同一类型的对象。 类是一个模板 、蓝本或者说是合约 , 用来定义对象的...
    99+
    2015-06-07
    java入门 java 对象
  • c++中对象和类的关系
    在 c++ 中,对象是类的具体实例,类是对象蓝图。对象拥有类的特性(数据成员)和行为(成员函数),而类定义对象的特性和行为规范。对象通过类创建,使用类成员函数访问特性和行为,而类则不能直...
    99+
    2024-05-10
    c++
  • c++中类和对象的关系
    类定义数据和操作,而对象是类的具体实例,包含并执行这些数据和操作。类提供通用模板,对象是模板的实现;类定义属性和行为,对象存储数据值并执行行为;类是静态的,对象是动态的;对象实例化自类,...
    99+
    2024-05-08
    c++
  • C++类和对象基础详解
    目录一、类和对象的基本概念结构化程序设计面向对象的程序设计使用类的成员变量和成员函数二、类和对象基础 类成员的可访问范围构造函数(constructor)基本概念拷贝(复制)构造函数...
    99+
    2024-04-02
  • 详解C++之类和对象(2)
    目录一.构造函数1.构造函数的定义:2.构造函数的特征:3.构造函数的实现:3.1.系统默认的构造函数3.2无参构造3.3 带参构造二 析构函数1.析构函数的定义2.析构函数的特征三...
    99+
    2024-04-02
  • 详解C++之类和对象(1)
    目录C语言和C++的一大区别struct和class的区别总结c++类的由来(或者说为什么要增加类):我们知道c语言是面向过程的语言,c++是即面向过程又是面向过程的语言。那么这两个...
    99+
    2024-04-02
  • 关于java中类和对象的讲解
    1、定义 类: 对于一类事物的统称,对当前事物的一些描述,属性描述和行为描述 对象: 独立,唯一,特殊的个体2、定义格式class ClassName { // 属性描述 // 行为描述 }要求: ClassName要求符合大驼峰命名法,并...
    99+
    2014-07-08
    java入门 java 对象
  • C++类和对象之封装详解
    目录封装的意义以及示例访问权限公共权限 public保护权限 protected私有权限 privatestruct 和 class的区别成员属性私有化案例1:设计立方体类案例2:点...
    99+
    2024-04-02
  • C++类和对象之多态详解
    目录多态基本概念和原理剖析多态案例1 计算器类纯虚函数和抽象类多态案例2 制作饮品虚析构和纯虚析构多态案例3 电脑组装多态基本概念和原理剖析 多态:多态是C++面向对象的三大特性之一...
    99+
    2024-04-02
  • 【C++】类和对象(四)
    1.初始化列表: 1.1为什么要有初始化列表? 实验代码如下: class A{public: int _a1;//声明 int _a2; const int _x;};int main(){ A aa;//...
    99+
    2023-08-30
    c++ java 算法
  • 【C++】类和对象(三)
    类和对象(三) 拷贝构造函数: 当我们想要将一个已确定的类变量的值拷贝给另外一个相同类型的类变量,有什么快捷的方法吗? 就相当于定义了一个int类型的i=10,想将i复制给一个刚初始化的遍历j,int...
    99+
    2023-08-31
    c++ java 开发语言
  • C++OOP对象和类的详细讲解
    目录C++OOP对象和类1.预备知识2.抽象和类2.1 数据抽象2.2 类2.3 接口3.C++中的类和对象3.1 C++类的定义3.2 C++对象的定义3.3 C++访问数据成员3...
    99+
    2024-04-02
  • java中类与对象的使用详情
    目录1. 类的定义2.对象的创建和使用如何得到对象如何使用对象3.学生对象-练习4.成员变量的默认值1. 类的定义 面向对象是通过类和对象去描述和代表万千事物对象的,首先我们需要知道...
    99+
    2024-04-02
  • C++初识类和对象
    目录一.初步认识面向过程和面向对象二.类的引入三.类的定义1.定义和声明全部放在类体中,需要注意的是:2.声明与定义分离四.类的访问限定符及封装1.访问限定符2.封装五.类的作用域六...
    99+
    2024-04-02
  • C++ 再识类和对象
    目录类的6个默认成员函数构造函数1.概念2.特性隐式构造函数无参和全缺省的函数均为默认构造函数成员变量的命名风格补充析构函数1.概念2.特性c++编译器在对象生命周期结束时自动调用析...
    99+
    2024-04-02
  • C++类和对象补充
    目录一. 再看构造函数1.函数体内赋初值2.初始化列表几点注意3.explicit关键字二.static成员1.概念2.特性三.友元1.友元函数2.友元类四.内部类总结一. 再看构造...
    99+
    2024-04-02
  • Flask  response 对象详情
    在 Flask 中,响应使用 Response 对象表示,响应报文中的大部分内容由服务器处理,一般情况下,我们只负责返回主体内容即可。在之前的文章中,我们了解到 Flask 会先匹...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作