8.10 静态方法
方法主要可以分为静态方法和实例方法[1]。如何区分静态方法和实例方法呢?很简单,使用了static修饰符的方法为静态方法,反之则是非静态方法。
静态方法有几个特点:
❑它不属于特定对象的方法,它属于某一个类的具体实例;
❑它只可以访问静态成员变量,而不可以直接访问实例变量;
❑它不用创建类的对象即可访问(要求满足相应访问级别的情况下);
❑静态方法中不能使用this关键字[2]引用类的当前实例。
接下来看一个实例,如代码清单8-19所示:
代码清单8-19 静态方法
1 using System;
2 namespace ProgrammingCSharp41
3{
4 public class MethodSample
5{
6 public static string str1;
7 public string str2;
8
9 public static void Main()
10{
11 MethodSample ms=new MethodSample();
12
13//错误,通过类实例不能调用静态方法
14//ms.DoSomething1();
15
16//正确,必须通过类调用静态方法
17 MethodSample.DoSomething1();
18
19//正确,通过类实例调用实例方法
20 ms.DoSomething2();
21}
22//静态方法
23 public static int DoSomething1()//static关键字
24{
25 str1=“只能访问静态成员str1”;
26//this.str2=“错误,无法编译通过”;
27 Console.WriteLine(“静态方法:”);
28 Console.WriteLine(str1);
29 return 1;
30}
31//实例方法
32 public void DoSomething2()
33{
34 str1=“可以访问静态成员str1”;
35 str2=“也可以访问非静态成员str2”;
36 Console.WriteLine(“实例方法:”);
37 Console.WriteLine(str1);
38 Console.WriteLine(str2);
39}
40}
41}
说明,如表8-6所示。
[1]将在第9章讲解。
[2]this关键字,请参阅第9.8节。