A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© brucel50 中级黑马   /  2013-8-22 22:14  /  1790 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

相信童鞋们对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. }
复制代码
所以说啊,这东西都是有规律的,明明很简单的问题,在学习其它知识点的时候,要是不扎实的话,还真会懵一懵脑袋···
。。。

3 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
静态方法调用的时候 类名.方法名
非静态方法调用的时候 需要new一个对象, 对象.方法名
回复 使用道具 举报
一般静态成员、静态方法、静态类的“权限”都没非静态的大。它们自能静态调静态。而非静态的没这种限制。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马