对象和类型.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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 { DeclarationOfTypeA DeclarationOfTypeB Class C { Static void main() { …. } } } 什么是类型? 用来创建数据结构的模板。模板本身不是数据结构,但它详细说明了由模板构造的对象的特征。类型由下面的元素定义: 名称 用于保存数据成员的数据结构 一些行为及约束条件 实例化类型 从某个类型模板创建实际的对象,称为实例化该类型。 通过实例???类型而创建的对象被称为类型的对象或类型的实例。 在C#程序中,每个数据项都是某种类型的实例。这些类型可以是语言自带的,可以是BCL或其他库提供的,也可以是程序员定义的。 成员的类别 另一些类型可以包含许多不同类型的数据项。这些类型中的数据项个体称为成员,并且与数组中使用数字来引用成员不同,这些成员有独特的名称。 数据成员:保存了与这个类的对象或作为一个整体的类的相关的依据。 函数成员:执行代码,函数成员定义类型的成员。 非简单预定义类型 String unicode字符序列 System.String Object 所有其他类型的基类 System.Object Dynamic 在使用动态语言编写的程序集时使用 用户定义类型: 类(class) 结构(Struct) 数组(array) 枚举(enum) 委托(delegate) 接口(interface) 类型通过类型声明创建,类型声明包含:要创建的类型种类、新类型的名称、对类型中每个成员的声明(名称和 规格,array和delegate类型除外) 一旦声明了类型就能像预定义类型一样创建和使用这种类型的对象 使用用户定义类型必须先声明类型,然后实例化该类型的对象。 栈 运行中的程序使用两个内存区域来存储数据:栈和堆,存储在哪里依赖于数据类型。 数据先进后出,后进的数据促使栈顶上移,把数据放入栈顶叫入栈,从栈顶删除叫出栈。 栈存储:某些类型变量的值、程序当前的执行环境、传递给方法的参数 堆 堆可以分配大块的内存用于存储某类型的数据对象。堆里的内存可以以任意顺序存入和移除。虽然程序可以在堆里保存数据,但并不能显式地删除它们。CLR的自动GC(垃圾收集器)在判断出程序的代码将不会再访问某数据项时,自动清除无主的堆对象。 值类型和引用类型 引用类型需要两段内存 1、第一段存储实际的数据 2、第二段是一个引用,指向数据在堆中的存放位置 存储引用类型对象的成员 引用类型的对象的数据部分始终存储在堆里 值类型对象,或引用类型数据的引用部分可以存放在堆里,也能存放在栈里,视实际环境而定。 例如,假设有一个引用类

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档