预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

静态成员:在类的成员的类型或者返回值类型前面加上关键字static,就可以将该成员定义为静态成员。常量或类型声明会隐式地声明为静态成员,其他没有用static修饰的成员都是实例成员。静态成员属于类,被这个类的所有实例所共享;实例成员属于对象(类的实例),每一个对象都有实例成员的不同副本。 下面看一下静态成员和实例成员的特点: 静态成员:1>静态成员必须通过类名使用.运算符来引用,而不能用对象来引用。 2>一个静态字段只标识一个存储位置。无论创建了一个类的多少个实例,它的静态字段在内存中都只占 用同一块区域。 3>静态函数成员(方法,属性,事件,运算符或构造函数)不能作用于具体的实例,在这类函数成员中 不能直接使用实例成员,必须通过类名来引用。 实例成员:1>实例成员必须通过对象名使用.运算符来引用,而不能用类名来引用。 2>类的实例字段属于类的实例所有,每创建一个类的实例,都在内存中为实例字段开辟了一块区域。 类的每个实例分别包含一组该类的所有实例字段的副本。 3>类的函数成员(方法,属性,索引器,实例构造函数或析构函数)作用于类的给定的实例,在它们 的代码体内可以直接引用类的静态和实例成员。 下面用具体的代码来看它们的用法。 /**//*要点:静态成员属于类,实例成员属于对象(类的实例)静态成员必须通过类名使用.运算符来引用,而不能用对象来引用实例成员必须通过对象名使用.运算符来引用,而不能通过类名来引用*/ usingSystem;using System.Collections.Generic;using System.Text;namespaceConsoleApplication5... {classProgram. ..{intx;//实例字段 staticinty;//静态字段 voidF()//实例方法.. .{ x=1;//正确,实例方法内可以直接引用实例字段y=1;//正确,实例方法内可以直接引用静态字段 } staticvoidG()//静态方法... { //x=1;//错误,静态方法内不能直接引用实例字段 y=1;//正确,静态方法内可以直接引用静态字段 } staticvoidMain(string[]args)//静态方法.. .{ Programt=newProgram();//创建对象 t.x=1;//正确,用对象引用实例字段//t.y=1;//错误,不能用对象引用实例字段//Program.x=1;//错误,不能用类名引用实例字段Program.y=1;//正确,用类目引用静态字段t.F();//正确,用对象引用实例方法//t.G();//错误,不能用对象名调用静态方法//Program.F();//错误,不能用类目调用实例方法Program.G();//正确,用类名调用静态方法 } } } 数据成员:数据成员可以分静态变量、实例变量两种.静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量(是一个共性的表现),他不依赖特定对象的存在,访问的时候通过类名加点操作符加变量名来访问.实例成员:实例成员变量是和对象相关联的,访问实例成员变量依赖于实例的存在.函数成员:方法可以主要分为静态方法,实例方法静态方法:静态方法是不属于特定对象的方法,静态方法可以访问静态成员变量,静态方法不可以直接访问实例变量,可以在实例函数调用的情况下,实例变量做为参数传给静态方法。静态方法也不能直接调用实例方法,可以间接调用,首先要创建一个类的实例,然后通过这一特定对象来调用静态方法。实例方法:一个实例方法的执行与特定对象关联,他的执行需要一个对象存在。实例方法可以直接访问静态变量和实例变量,实例方法可以直接访问实例方法、和静态方法,静态方法的访问方式为类名加点操作符加变量名。当多个实例对象存在时,内存中并不是存在每个特定的实例方法的拷贝,而是,相同类的所有对象都共享每个实例方法的一个拷贝(实例方法只占用“一套”空间)。