您的位置:首页 > 编程语言 > C#

C#面向对象2 静态类、静态成员的理解

2013-06-24 09:01 281 查看
理解:静态成员属于类所有,为各个类的实例所公用,与实例无关,需要全局共享的属性或者方法定义成静态的C#静态成员: 1、静态成员属于类所有,故用类名调用,非静态成员属于类的实例所有,用实例名调用 2、非静态成员有一片固定的空间,而每创建一个类的实例,都会在内存中为非静态成员新分配一块存储; C#静态方法 1、C#静态方法属于类所有,故用类名调用 2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。 因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存, 静态方法、静态字段namespace _2_静态_非静态方法{ class Program { static void Main(string[] args) { Person.name = "key"; //用类名调用静态字段、方法 Person.show1("哈哈哈哈哈"); Console.WriteLine("================"); Person per1 = new Person(); per1.age = 19; //用实例名调用非静态字段、方法 per1.show2("呵呵呵呵呵呵呵呵"); Console.ReadKey(); } }

class Person { public static string name; //静态字段 public int age; //非静态字段 public static void show1(string str) //静态方法 { Console.WriteLine(str); Console.WriteLine(name); //可以调用静态字段,不能调用非静态字段 } public void show2(string str) //非静态方法 { Console.WriteLine(str); Console.WriteLine(name+"今年"+age.ToString()+"岁"); } }}==================================静态类namespace 静态类{ class Program //静态类的所有成员也都是静态的,作用就是建一个数学方法和值的数学库 { static void Main(string[] args) { int val = 3; Console.WriteLine("{0} is odd is {1}",val,MyMath.IsOdd(val)); Console.WriteLine("{0}*2={1}",val,MyMath.Times2(val)); } }

static public class MyMath { public static float PI = 3.14f; public static bool IsOdd(int x) { return x % 2 == 1; } public static int Times2(int x) { return 2*x; } }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: