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所示。

8.10 静态方法 - 图1

[1]将在第9章讲解。

[2]this关键字,请参阅第9.8节。