对象和类型.docx

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对象和类型

对象和类型类和结构类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了每个类对象(实例)可以包含什么数据和功能。例如,一个类表示一个顾客,就可以定义字段CustomerID,Lastname和Address,以包含顾客信息。还可以定义处理存储在这些字段中的数据的功能。接着就能实例化这个类的对象,以表示某个顾客,并为这个实例设置这些字段,使用其功能。结构和类的区别在它们在内存中的存储方式(类是存储在堆(heap)上)的引用类型,而结构是存储在堆栈(stack)上的值类型。访问方式和一些特征(结构不支持继承)。对于类和结构,都使用关键字new来声明实例:这个关键字创建对象并对其进行初始化。类中的数据和函数成为类的成员——数据成员和函数成员,除成员之外类还可以包含嵌套类型(比如其他类)。数据成员包含了类的数据——字段、常量和事件。数据成员可以是静态数据(与整个类相关)或实例数据(类的每个实例都有他自己的数据副本)。通常类成员总是实例成员,除非用static进行了显示声明。字段是与类相关的变量。一旦实例化PhoneCustomer对象,就能使用语法Object.FieldName来访问这些字段:PhoneCustomer Customer1= new PhoneCustomer();Customer1.FirstName=”zz”;常量与类的关联方式同变量与类的关联方式相同。使用Const关键字来声明变量。如果它们声明为public就可以在类的外部访问。***************************************************************************C#程序是一组类型声明。C#程序或DLL源代码是一组一种或多种类型声明。命名空间是一种把相关的类型声明分组并命名的方法。既然程序是一组相关的类型声明,那么通常会把程序声明在你创建的命名空间内部。Namespace Program{DeclarationOfTypeADeclarationOfTypeBClass C{Static void main(){….}}}什么是类型?用来创建数据结构的模板。模板本身不是数据结构,但它详细说明了由模板构造的对象的特征。类型由下面的元素定义:名称用于保存数据成员的数据结构一些行为及约束条件实例化类型从某个类型模板创建实际的对象,称为实例化该类型。通过实例化类型而创建的对象被称为类型的对象或类型的实例。在C#程序中,每个数据项都是某种类型的实例。这些类型可以是语言自带的,可以是BCL或其他库提供的,也可以是程序员定义的。成员的类别另一些类型可以包含许多不同类型的数据项。这些类型中的数据项个体称为成员,并且与数组中使用数字来引用成员不同,这些成员有独特的名称。数据成员:保存了与这个类的对象或作为一个整体的类的相关的依据。函数成员:执行代码,函数成员定义类型的成员。非简单预定义类型Stringunicode字符序列System.StringObject所有其他类型的基类System.ObjectDynamic在使用动态语言编写的程序集时使用用户定义类型:类(class)结构(Struct)数组(array)枚举(enum)委托(delegate)接口(interface)类型通过类型声明创建,类型声明包含:要创建的类型种类、新类型的名称、对类型中每个成员的声明(名称和 规格,array和delegate类型除外)一旦声明了类型就能像预定义类型一样创建和使用这种类型的对象使用用户定义类型必须先声明类型,然后实例化该类型的对象。栈运行中的程序使用两个内存区域来存储数据:栈和堆,存储在哪里依赖于数据类型。数据先进后出,后进的数据促使栈顶上移,把数据放入栈顶叫入栈,从栈顶删除叫出栈。栈存储:某些类型变量的值、程序当前的执行环境、传递给方法的参数堆堆可以分配大块的内存用于存储某类型的数据对象。堆里的内存可以以任意顺序存入和移除。虽然程序可以在堆里保存数据,但并不能显式地删除它们。CLR的自动GC(垃圾收集器)在判断出程序的代码将不会再访问某数据项时,自动清除无主的堆对象。值类型和引用类型引用类型需要两段内存1、第一段存储实际的数据2、第二段是一个引用,指向数据在堆中的存放位置存储引用类型对象的成员引用类型的对象的数据部分始终存储在堆里值类型对象,或引用类型数据的引用部分可以存放在堆里,也能存放在栈里,视实际环境而定。例如,假设有一个引用类型实例,名称为MyType,有两个成员:一个值类型成员和一个引用类型成员。4种变量名称类型的成员描述本地变量否在方法的作用域保存临时数据字段是保存和类型或类型实例相关的数据参数否用于从一个方法到另一个方法传递数据的临时变量数组元素是(同类)数据

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档