首页 理论教育 C#编程新手:静态方法与实例方法

C#编程新手:静态方法与实例方法

时间:2023-10-22 理论教育 版权反馈
【摘要】:在C#中,使用static修饰的方法被称为静态方法,而没有用static修饰的方法被称为实例方法。在静态方法中不能使用this关键字,并且只能访问类中的静态成员,而不能使用实例成员。图7-4 实例执行结果图7-5 实例执行结果上面的方法xinxi()是静态方法,所以在使用时直接使用类名来调用;而方法Deposit()和方法Withdraw()则是实例方法,在调用时必须创建实例对象。无论静态方法还是动态方法,都是存放在某个特定的位置上的。

C#编程新手:静态方法与实例方法

在C#中,使用static修饰的方法被称为静态方法,而没有用static修饰的方法被称为实例方法。静态方法的成员比较特殊,不属于一个类的某个具体实例或对象,而是属于类本身。在静态方法中不能使用this关键字,并且只能访问类中的静态成员,而不能使用实例成员。在项目文件中访问静态方法时只能使用类名,而不需要创建额外的对象。

实例方法可以使用类的所有成员,在调用实例方法时必须使用类的实例或对象来引用,并且在实例方法内可以使用this关键字。

实例16:实现进货和出货处理

下面通过一个简单实例来说明使用实例方法的具体流程。本实例代码保存在“7”文件夹内,项目名为jingdong。本实例的功能是通过方法实现进货和出货处理。实例文件的主要代码如下:

978-7-111-36370-5-Part02-24.jpg

978-7-111-36370-5-Part02-25.jpg

978-7-111-36370-5-Part02-26.jpg

上述实例代码的设计流程如下。

1)定义方法Account(),设置商店最初库存为0,并调用方法Print()输出指定的文本。

2)定义进货处理方法Deposit(),并调用方法Print()输出指定的文本。

3)定义出货处理方法Withdraw(),并调用方法Print()输出指定的文本。

4)定义Main(),设置用户的名称为“我的商店”,最初库存是0。(www.xing528.com)

5)定义变量succeed,判断处理货量是否合法。

执行后将首先显示最初的商品数,即为0;当按〈Enter〉键后,将执行进货处理方法,并显示处理后的商品数;再次按〈Enter〉键后,将执行出货处理方法,并显示处理后的商品数。最终执行结果如图7-4所示。

在上述实例中,通过定义变量succeed判断处理货量是否合法。例如,将出货数修改为100,则会输出“出货失败!”提示,如图7-5所示。

978-7-111-36370-5-Part02-27.jpg

图7-4 实例执行结果

978-7-111-36370-5-Part02-28.jpg

图7-5 实例执行结果

上面的方法xinxi()是静态方法,所以在使用时直接使用类名来调用;而方法Deposit()和方法Withdraw()则是实例方法,在调用时必须创建实例对象。

多学一招

对于C#中的方法来说,是没有分配内存这个概念的。无论静态方法还是动态方法,都是存放在某个特定的位置上的。不同的是在类加载的时候,静态方法通过类名引用,动态方法通过实例化引用。而实例化类时,不会为类的方法分配内存,只是给类实例的数据分配内存,所以成员变量和成员方法的内存分配是不一样的。

静态是类的,实例是对象的,即静态成员就是类所有对象所具备的特点,而实例成员是每个对象自有的实现,是不一样的。例如,每个人都有头发、眼睛、耳朵、名字、性别、年龄、身高等,这些都是静态的,但是每个人的这些属性是不一样的,这些不同的属性就是实例化。所以也可以说,静态方法不需要依赖类中的属性,静态方法本身就可以封闭地完成一个功能,而实例的方法更多会用到类中的属性。静态方法在它一启动的时候就实例化了,因而静态内存是连续而有限制的;实例方法则在程序运行中生成内存,实例申请的是离散的空间。静态方法大多用于数据连接上。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈