类和结构的区别
2009-02-16 15:23
127 查看
类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了每个类对象(称为实例)可以包含什么数据和功能
结构与类的区别是它们在内存中的存储方式(类是存储在堆(heap)上的引用类型,而结构是存储在堆栈(stack)上的值类型)、访问方式和一些特征(如结构不支持继承)。
对于类和结构,都使用关键字new来声明实例:这个关键字创建对象并对其进行初始化。
数据成员包含了类的数据—— 字段、常量和事件。
函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和终结器(finalizer)、运算符以及索引器。
事件是类的成员,在发生某些行为(例如改变类的字段或属性,或者进行了某种形式的用户交互操作)时,它可以让对象通知调用程序。客户可以包含所谓“事件处理程序”的代码来响应该事件。
方法是与某个类相关的函数,它们可以是实例方法,也可以是静态方法。实例方法处理类的某个实例,静态方法提供了更一般的功能,不需要实例化一个类(例如Console. WriteLine()方法)。
属性是可以在客户机上访问的函数组,其访问方式与访问类的公共字段类似。
构造函数是在实例化对象时自动调用的函数。它们必须与所属的类同名,且不能有返回类型。构造函数用于初始化字段的值。
运算符执行的最简单的操作就是+和–。
C#还允许指定把已有的运算符应用于自己的类(运算符重载)。
索引器允许对象以数组或集合的方式进行索引。
字段、常量和事件才是数据成员。
属性的概念是:它是一个方法或一对方法,在客户机代码看来,它们是一个字段。
结构与类的区别是它们在内存中的存储方式(类是存储在堆(heap)上的引用类型,而结构是存储在堆栈(stack)上的值类型)、访问方式和一些特征(如结构不支持继承)。
对于类和结构,都使用关键字new来声明实例:这个关键字创建对象并对其进行初始化。
数据成员包含了类的数据—— 字段、常量和事件。
函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和终结器(finalizer)、运算符以及索引器。
事件是类的成员,在发生某些行为(例如改变类的字段或属性,或者进行了某种形式的用户交互操作)时,它可以让对象通知调用程序。客户可以包含所谓“事件处理程序”的代码来响应该事件。
方法是与某个类相关的函数,它们可以是实例方法,也可以是静态方法。实例方法处理类的某个实例,静态方法提供了更一般的功能,不需要实例化一个类(例如Console. WriteLine()方法)。
属性是可以在客户机上访问的函数组,其访问方式与访问类的公共字段类似。
构造函数是在实例化对象时自动调用的函数。它们必须与所属的类同名,且不能有返回类型。构造函数用于初始化字段的值。
运算符执行的最简单的操作就是+和–。
C#还允许指定把已有的运算符应用于自己的类(运算符重载)。
索引器允许对象以数组或集合的方式进行索引。
字段、常量和事件才是数据成员。
属性的概念是:它是一个方法或一对方法,在客户机代码看来,它们是一个字段。
相关文章推荐
- C#.NET中关于结构与类之间的区别
- mvc与三层结构终极区别
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构的区别
- C#中结构与类的区别
- 处理拥有相似结构的表 & map 和 maps 的区别和使用方法
- 结构体(struct)、联合体(union)、枚举(enum) 三种结构的区别及各个结构细节的总结
- 循环结构中break、continue、return和exit的区别
- 总结:Linux体系结构和内核结构区别
- PHP 语言结构(Language constructs)和函数的区别
- mysql复制表结构create table as和like的区别
- C#.NET中关于结构与类之间的区别
- 01、类与结构的区别
- sockaddr与sockaddr_in结构体详细讲解 二者区别
- 类和结构的区别?
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- 【转载】循环结构中break、continue、return和exit的区别
- C# 中类和结构的区别
- CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
- 数据结构(二)饥饿与死锁的区别
- [转载]:C# 中结构与类的区别