深入浅出C# 中文版 图文皆译 第三章 page97
2008-12-09 22:25
330 查看
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
你不用创建Talker类的实例就可以调用方法。只需要这样:
Static方法就是这么调用的,你已经这么做过了。如果你把BlahBlahBlah()方法的static关键字去掉,那你就一定要创建一个Talker的实例来调用这个方法。除了这个区别,静态方法和实例方法一样。你可以给它传递参数,它会返回值,并且它处在类里面。
你还可以用static关键字做一件另外的事儿。你可以把整个类声明为static,那么它的所有方法一定要是静态的。如果给一个静态类添加一个非静态方法,会无法编译的。
问:我想到静态就想到了不会改变的东西。这意味着非静态方法可以改变而静态方法不能改变吗?它们的行为方法有区别?
答:不,静态的和非静态的方法行为方式是一样的。唯一区别是静态方法不要求一个实例,而非静态方法要有实例才行。很多人记不住这一点,因为“静态”这个词汇不是很直观。
问:如果我不创建我的类的一个实例我就不能用它?
答:可以用它的静态方法。但是非静态方法就需要创建实例了。
问:那我干嘛要写需要实例的方法呢?我为什么不把所有的方法都写成静态的?
答:因为如果你的对象需要保持一些数据--比如Mike的每个Navigator对象都需要保持一个路径的数据--这样你才可以用每一个对象来操作不同的数据。所以当Mike调用Navigator2对象的ModifyRouteToAvoid()方法的时候,只会影响保存在这一个实例里面的路径数据,不会影响到Navigator2和Navigator3对象。这样Mike就可以同时操作三条路径--它的程序就可以同时跟踪它们。
问:实例是怎么保持数据的?
答:翻过页来找答案!
你不用创建Talker类的实例就可以调用方法。只需要这样:
Static方法就是这么调用的,你已经这么做过了。如果你把BlahBlahBlah()方法的static关键字去掉,那你就一定要创建一个Talker的实例来调用这个方法。除了这个区别,静态方法和实例方法一样。你可以给它传递参数,它会返回值,并且它处在类里面。
你还可以用static关键字做一件另外的事儿。你可以把整个类声明为static,那么它的所有方法一定要是静态的。如果给一个静态类添加一个非静态方法,会无法编译的。
问:我想到静态就想到了不会改变的东西。这意味着非静态方法可以改变而静态方法不能改变吗?它们的行为方法有区别?
答:不,静态的和非静态的方法行为方式是一样的。唯一区别是静态方法不要求一个实例,而非静态方法要有实例才行。很多人记不住这一点,因为“静态”这个词汇不是很直观。
问:如果我不创建我的类的一个实例我就不能用它?
答:可以用它的静态方法。但是非静态方法就需要创建实例了。
问:那我干嘛要写需要实例的方法呢?我为什么不把所有的方法都写成静态的?
答:因为如果你的对象需要保持一些数据--比如Mike的每个Navigator对象都需要保持一个路径的数据--这样你才可以用每一个对象来操作不同的数据。所以当Mike调用Navigator2对象的ModifyRouteToAvoid()方法的时候,只会影响保存在这一个实例里面的路径数据,不会影响到Navigator2和Navigator3对象。这样Mike就可以同时操作三条路径--它的程序就可以同时跟踪它们。
问:实例是怎么保持数据的?
答:翻过页来找答案!
相关文章推荐
- 深入浅出C# 中文版 图文皆译 第三章 page115
- 深入浅出C# 中文版 图文皆译 第三章 page100
- 深入浅出C# 中文版 图文皆译 第三章 page106
- 深入浅出C# 中文版 图文皆译 第三章 page102
- 深入浅出C# 中文版 图文皆译 第三章 page111
- 深入浅出C# 中文版 图文皆译 第三章 page101
- 深入浅出C# 中文版 图文皆译 第三章 page104
- 深入浅出C# 中文版 图文皆译 第三章 page105
- 深入浅出C# 中文版 图文皆译 第三章 page116
- 深入浅出C# 中文版 图文皆译 第三章 page95
- 深入浅出C# 中文版 图文皆译 第三章 page109
- 深入浅出C# 中文版 图文皆译 第三章 page108
- 深入浅出C# 中文版 图文皆译 第三章 page112
- 深入浅出C# 中文版 图文皆译 第三章 page114
- 深入浅出C# 中文版 图文皆译 第三章 page103
- Head First C# 中文版 图文皆译 第三章 page92
- 深入浅出C# 中文版 图文皆译 第四章 类型和引用 page167
- 深入浅出C# 中文版 图文皆译 第四章 类型和引用 page168
- 深入浅出C# 中文版 图文皆译 第三章 page117
- 深入浅出C# 中文版 图文皆译 第四章 类型和引用 page150