黑马程序员技术交流社区

标题: 类的成员方法的问题 [打印本页]

作者: brucel50    时间: 2013-8-22 22:14
标题: 类的成员方法的问题
相信童鞋们对static、类、类的成员、方法已经不陌生了。。。
今天看多线程的视频的时候,突然想到一个小小的问题(真的是小小的)
类中的一个方法调用另一个方法的时候,被调用的方法是设成静态的,还是非静态的?
于是乎就做了下面的小测试
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace 类内部调用其它成员方法用是静态的吗
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Person p = new Person();
  12.             p.SayHello();
  13.             Console.ReadKey();
  14.         }
  15.     }
  16.     class Person
  17.     {
  18.         public void SayHello()
  19.         {
  20.             //=====================================
  21.             //在这个SayHello()方法中分别调用本类中的一个静态方法和一个非静态方法,都能调用
  22.             Say();
  23.             Say1();
  24.             //-------------------------------------
  25.             //=====================================
  26.             //但是实际上,它们是这样子的:)
  27.             this.Say();
  28.             //this.Say1(); 请改用类型名来访问它
  29.             Person.Say1();
  30.             //-------------------------------------

  31.             //所以说,不只是Program中的类方法,只要访问权限够,其它的问题,比如静态、非静态
  32.             //都是一样的
  33.             //还可以实例化并调用实例方法:
  34.             Person p = new Person();
  35.             p.Say();
  36.         }
  37.         private void Say()
  38.         {
  39.             Console.WriteLine("无static");

  40.         }
  41.         private static void Say1()
  42.         {
  43.             Console.WriteLine("有static");
  44.         }
  45.     }
  46. }
复制代码
所以说啊,这东西都是有规律的,明明很简单的问题,在学习其它知识点的时候,要是不扎实的话,还真会懵一懵脑袋···
。。。


作者: 许庭洲    时间: 2013-8-23 06:38
值得学习ing!
作者: 小天    时间: 2013-8-23 08:44
静态方法调用的时候 类名.方法名
非静态方法调用的时候 需要new一个对象, 对象.方法名
作者: shenge321    时间: 2013-8-24 19:08
一般静态成员、静态方法、静态类的“权限”都没非静态的大。它们自能静态调静态。而非静态的没这种限制。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2