类的静态(Static)成员——字段

定义一个雇员类:

namespace StaticFieldTest1
{
    class Employee
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Salary { get; set; }

        //
        public static int NextId;
        public Employee(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
            Id = NextId;
            NextId++;
        }
    }
}

使用雇员类:

using System;

namespace StaticFieldTest1
{
    class Program
    {
        static void Main(string[] args)
        {
            Employee.NextId = 100000;

            Employee employee1 = new Employee("Inigo", "Montoya");
            Employee employee2 = new Employee("Princess", "Buttercup");

            Console.WriteLine("{0} {1} ({2})", employee1.FirstName, employee1.LastName, employee1.Id);
            Console.WriteLine("{1} {1} ({2})", employee2.FirstName, employee2.LastName, employee2.Id);

            Console.WriteLine("NextId = {0}", Employee.NextId);
            Console.ReadKey();

        }
    }
}

输出:

Inigo Montoya (100000)
Buttercup Buttercup (100001)
NextId = 100002

时间: 2025-01-04 14:39:24

类的静态(Static)成员——字段的相关文章

PHP类的静态(static)方法和静态(static)变量使用介绍

PHP类的静态(static)方法和静态(static)变量使用介绍,学习php的朋友可以看下 在php中,访问类的方法/变量有两种方法: 1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问. 2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以.但是有前提条件: A. 如果是变量,需要该变量可访问. B. 如果是方法,除了该方法可访

C++学习笔记(3)----类模板的static成员

与任何其他类相同,类模板可以声明 static 成员: template <typename T> class Foo { public: static std::size_t count() { return ctr; } void addctr() { ctr++; } void subctr() { ctr--; } private: static std::size_t ctr; // 下面可以有其他成员接口 }; template <typename T> std::si

C++ 使用类模板的static成员

使用类模板的static成员 定义下面这个模板类 template <class T> class Foo { public: static std::size_t ctr; static std::size_t count() { return ctr++; } static void set_ctr(std::size_t v) { ctr = v; } T val; }; 下面的代码来使用它 Foo<int> f1, f2; Foo<int>::set_ctr(1

类的静态数据成员初始化问题

1. 静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域运算符来指出静态成员所属的类.但如果静态成员是整形const或枚举型const,则可以在类声明中初始化. C++ primer plus P426-P427类静态成员的声明和初始化 //strnbad.h class StringBad { private: static int num_strings; … }; //strnbad.cpp int StringBad::num_strings = 0; 不能在类声

【很变态】PHP类实例化对象竟然可以访问类的“静态(static)方法”!!!

之前发现一个PHP的变态问题:PHP中静态(static)调用非静态方法详解 这次看了下 ThinkPHP 的源码 function.inc.php ,里面有个函数: /** * 取得对象实例 支持调用类的静态方法 * * @param string $name 类名 * @param string $method 方法 * @param string $args 参数 * @return object 对象实例 */ function get_instance_of($name, $metho

PHP类的静态(static)方法和静态(static)变量

在php中,访问类的方法/变量有两种方法:1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问.2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以.但是有前提条件:A. 如果是变量,需要该变量可访问.B. 如果是方法,除了该方法可访问外,还需要满足:b1) 如果是静态方法,没有特殊条件:b2) 如果是非静态方法,需要改方法中没有使用$

java类中的static成员变量和static方法简单介绍,持续补充

一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用. 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方法 1.静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员:如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量 2. 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量 3. 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法 注

C++ Primer 学习笔记_22_类与数据抽象(8)--static 成员变量、static 成员函数、类/对象的大小

一.static 每个static数据成员是与类关联的对象,并不与该类的对象相关联!非static数据成员存在于类类型的每个对象中,static数据成员独立该类的任意对象存在. static成员函数没有this形参,它可以直接访问所属类的static成员,但是不能直接使用static成员! 1.static 成员变量 对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量.比如说统计某种类型对象已创建的数量. 如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,这时可

转:C语言中的static变量和C++静态数据成员(static member)

转自:C语言中的static变量和C++静态数据成员(static member) C语言中static的变量:1).static局部变量        a.静态局部变量在函数内定义,生存期为整个程序运行期间,但作用域与自动变量相同,只能在定义该变量的函数内使用.退出该函数后, 尽管该变量还继续存在,但不能使用它.        b.对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值.而对自动变量不赋初值,则其值是不定的.2).static全局变量        全局变量本身就是静