蛙蛙推荐:类中的静态成员和非静态成员(C#版)

原创 2004年07月10日 13:09:00

//蛙蛙推荐:类中的静态成员和非静态成员(C#版)
//下面我写一个例子来演示静态成员和非静态成员的区别
//类的成员要么是静态的,要么是动态的,如果将类的某个成员声明为static,则该成员是静态成员。
//类的静态成员是属于类所有,不必产生类的实例就可以访问它,就是只用类名就可以访问
//静态成员为类的所有实例所共享,无论这个类创建了多少个实例,一个静态成员在内存中只占有一块区域.
//类的非静态成员属于类的实例所有,每创建一个类的实例,都在内存中为非静态成员开辟了一块区域
//静态方法只能访问类例的静态字段,而非静态方法可以访问类例的所有字段
using System;

class Employee {
    public static decimal Salary;  // 静态字段
    public string Name;  // 非静态字段
    public static void SetSalary(decimal B) //静态方法
    {
       Salary=B;  // 正确,等价于Employee.Salary=B,注意这里不能访问Name变量的,因为它是静态方法
    }
    public void SetName(string N) //非静态方法
    {
       Name=N;   // 正确,等价于this.Name=N.
    }
}

class Sample
{
    public static void Main()
    {
       Employee.Salary=500.0m;   // 正确,静态字段可以按类名访问
       Employee.SetSalary(500.0m);  // 正确,静态方法可以按类名访问
       Employee e=new Employee();  // 建立类Employee的一个实例
       e.Name="蛙蛙王子";  // 正确,非静态字段必须通过实例访问
       e.SetName("蛙蛙王子");  // 正确,非静态方法必须通过实例访问
       // 注意,e.Name不能写成Employee.Name,即非静态成员不能按类名访问
       // Employee.Salary也不能写成e.Salary,即静态成员不能通过类的实例访问
       Console.WriteLine("员工姓名:{0}/n薪水:{1}元",
                         e.Name,Employee.Salary);
    }
}
//----------------------------------------------------
//注意一下,上面的例子只演示了类成员里的字段和方法,其实类的成员还有属性等,这里没有演示.
//把本文件保存成static.cs文件,然后在.net命令控制台下敲入csc static.cs会在当前目录下生成一个static.exe文件
//运行static.exe就会看到结果了,你可以试着改动程序让静态方法访问一下非静态字段,再用csc.exe程序编译一下,
//看看会提示什么错误,呵呵.

类中的静态成员和非静态成员(C#版)

    ...
  • a5174
  • a5174
  • 2006-09-19 14:54:00
  • 900

java学习总结(16.06.07)类的静态成员和非静态成员

java里,类的成员可分为静态成员和费静态成员(实例成员),静态成员和非静态成员,从定义上来说就是有没有static修饰符修饰的区别。有static修饰的成员就是静态成员。如 public stati...
  • qq_32099621
  • qq_32099621
  • 2016-06-07 07:08:26
  • 877

C++静态成员和非静态成员的区别

1.数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会...
  • developerof
  • developerof
  • 2016-04-14 10:03:32
  • 3398

静态成员变量和非静态成员变量的区别

从保存位置、书写格式、生命周期上、使用方法、修改后的影响范围上看静态成员变量和非静态成员变量的区别。...
  • tuntun1120
  • tuntun1120
  • 2016-08-17 21:33:12
  • 3080

C#静态与非静态 类,成员、结构

1、静态成员需要类名去调用 2、非静态成员需要实例化去调用 3、静态方法中,只可以访问静态成员。静态类中也只能有静态成员。 4、实例中既可以访问静态成员也可以访问非静态成员; 5、不能在静态类中声明实...
  • yanhuatangtang
  • yanhuatangtang
  • 2017-06-01 13:31:58
  • 247

java中静态成员与非静态成员之间的访问关系

转载地址:http://blog.csdn.net/zhouwubin123/article/details/6623308 程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。...
  • u013804636
  • u013804636
  • 2017-08-14 17:01:03
  • 486

static成员与非静态成员的区别以及使用方法

先简单的说一下,类中用 static 关键字修饰的成员都是静态成员,是这个类通用的特征( 属性 )行为( 方法 );而不用 static 修饰的成员即为非静态成员,或者叫实例成员,对于用同一个类实例出...
  • xinhuo1125
  • xinhuo1125
  • 2007-04-16 06:06:00
  • 1951

指向类的静态和非静态成员的指针

#include class Point{ public: Point(int xx=0,int yy=0) { X=xx; Y=yy; } Point(Point &p); ...
  • Sun19910114
  • Sun19910114
  • 2014-08-26 19:07:44
  • 995

类的静态方法(函数)中为什么不能调用非静态成员(属性)?

程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。 类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所...
  • ZOLoveGD
  • ZOLoveGD
  • 2008-09-11 17:20:00
  • 4728

C#—静态成员和实例成员

在C#中,类中的数据成员分为静态成员和实例成员,那么它们是什么,之间又有什么关系呢?我们来看一下。 静态成员(static member)又叫类成员,指的是在成员类型或返回值类型前用static关键字...
  • fightfaith
  • fightfaith
  • 2015-09-11 10:09:27
  • 2542
收藏助手
不良信息举报
您举报文章:蛙蛙推荐:类中的静态成员和非静态成员(C#版)
举报原因:
原因补充:

(最多只允许输入30个字)