C#实训Day008:C#中的成员关系体系

2025-07-01 03:37:28

1、什么是类:类是C#类型中最基础的类型,是一个数据结构,也是对象的集合,类主要有属性、字段、方法和函数组合在一个单元中,类可以继承于父类,也可以与其他的Class进行交互。类是对对象的定义,它包含对象的名称、方法、属性和事件等相关信息。

C#实训Day008:C#中的成员关系体系

2、类的构成:类中可以包含以下成员:1.常量: 数据值恒定不变的一个符号2.字段: 字段表示一个只读或荨层吒椋者可读写的数据值3.构造器:是用来创建对象实例的方法,该方法没有返回类型。4.方法:一个特殊的函数,用来更改或者查询一个类型或者对象的状态。5.属性:用来封装字段在外部的访问,避免直接访问字段。6.事件:封装一个委托链,通过某种触发机制,通知委托链中的方法执行。7子类型:嵌套在类型中的类型,作用是分离复杂性。8.操作符重载:重新定义在类所产生对象之间的特定操作9.转换操作符:定义如何显示或者隐式的将类转换为另外一种类型。10.索引器:使用索引器可以用类似于数组的方式为对象建立索引那么在一个类中,怎么去分辨以下内容呢,小编已经开始萌圈了?

C#实训Day008:C#中的成员关系体系

3、方法:是包含一系列语句的代码块,程序通过调用该方法并指定方法参数使语句得以执行,用于实现由对象或类执行的计算(在 C# 中,每个执行的指令均在方法的上下文中执行)。Main 方法是每个 C# 应用程序的入口点,并在启动程序时由公共语言运行时 (CLR) 调用。

C#实训Day008:C#中的成员关系体系

4、通过指定访问级别(如public或private)、可选修饰符(如abstract或sealed)、返回值、方法的名称以及任何方法参数,在类或结构中声明方法,这些部件一起构成方法。调用对象上的方法只要在对象名之后添加一个句点、方法名和括号。类提供了用于动态创建类实例的定义,也就是对象(object)。类支持继承(inheritance)和多态(polymorphism),即派生类能够扩展和特殊化基类的机制。

C#实训Day008:C#中的成员关系体系

5、类之间的关系:两个相对独立的对象,当一个对象的实例与另外一个对象的特定实例存在固定关系时,这两个对象之间就存在关联关系。1、单向关联:对象A可以访问对象B的方法和属性,而对象B不能访问对象A2、双向关联:对象A可以访问对象B的方法和属性,对象B也可以访问对象A3、自身关联:同一个类对象之间的关联4、多维关联:多个对象之间存在关联5、泛化:类与类的继承关系,类与接口的实现关系6、依赖:类A要完成某个功能必须引用类B,则A与B存在依赖关系。7、聚合:当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。8、组合:对象A包含对象B,对象B离开对象A没有实际意义。结构类型:结构与类很相似,都表示可以包含数据成员和函数成员的数据结构。但是,与类不同,结构是一种值类型,并且不需要堆分配。结构类型的变量直接包含结构的数据,而类类型的变量包含对数据的引用。

C#实训Day008:C#中的成员关系体系

6、结构声明结构声明是一种用于声明新结构的类蕞瞀洒疸型声明:使用struct关键字<访问修辞符> struct<结构名>{数据成员成员函数}结构对于具有值语义的小的数据结构界吹刂咣特别有用,这些数据结构的关键之处在于:它们只有少量数据成员,它们不要求使用继承或引用标识,而且它们适合使用值语义方便地实现。结构体和类的区别:1.值类型与引用类型结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型.类是引用类型:引用类型在堆上分配地址堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用注: a.虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object b.虽然结构的初始化也使用了New 操作符可是结构对象依然分配在堆栈上而不是堆上,如果不使用“新建”(new),那么在初始化所有字段之前,字段将保持未赋值状态,且对象不可用

C#实训Day008:C#中的成员关系体系

7、2.继承性结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed .类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被继承注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样

C#实训Day008:C#中的成员关系体系

8、3.内部结构:结构:没有默认的构造函数,但是可以添加构造函数 (结构体中不能定义默认的、不带参数的构造函数,只能定义带参的构造函数)没有析构函数没有 abstract 和 sealed(因为不能继承)不能有protected 修饰符可以不使用new 初始化在结构中初始化实例字段是错误的类:有默认的构造函数(可以定义默认的、不带参数的构造函数,或者带参的构造函数)有析构函数可以使用 abstract 和 sealed有protected 修饰符必须使用new 初始化

C#实训Day008:C#中的成员关系体系

9、如何选择结构还是类:讨论了结构与类的相同之处和差别之后,下面讨论如何选择使用结构还是类:1. 堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些2. 结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有 1000 个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。3. 在表现抽象和多级别的对象层次时,类是最好的选择4. 大多数情况下该类型只是一些数据时,结构时最佳的选择花了点时间整理了下C#中的一些定义,小编主要在以上几方面出现了混淆,本来以为整理下思维可以帮助小编更好的理解C#,可是整理完之后小编发现,思路更混了。东西太多了,有种恐惧感了,看来着思路是错误的,得换个思路学习了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢