C# 学习之 类的静态成员

我们可以使用 static 关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。

关键字 static 意味着类中只有一个该成员的实例。
静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。
静态变量可在成员函数或类的定义外部进行初始化。你也可以在类的定义内部初始化静态变量。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量,他不依赖特定对象的存在,访问的时候通过类名加点操作符加变量名来访问.
不管通过哪种方法改变静态成员变量,它都输出最后的赋值。
例如
using System;

namespace staticApplication
{
class Person
{
public static int ages;

public void setAge(int n)
{
ages=n;
}
public int getAge()
{
return ages;
}
}

class staticApplication
{
static void Main(string[] args)
{

Person p1=new Person();
Person p2=new Person();
p1.setAge(5);
Console.WriteLine("p1的变量age:{0}",p1.getAge());
p2.setAge(6);
Console.WriteLine("p2的变量age:{0}",p2.getAge());

p1.setAge(10);
p2.setAge(12);
Person.ages=15;
Console.WriteLine("p1的变量ages:{0},p2的变量ages:{1},类Person的变量ages:{2}",p1.getAge(),p2.getAge(),Person.ages);
}
}
}

输出结果:
p1的变量age:5
p2的变量age:6
p1的变量ages:15,p2的变量ages:15,类Person的变量ages:15
二、静态方法

静态方法和实例方法的访问权限表
静态成员变量 静态方法 实例成员变量 实例方法
静态方法 直接访问 直接访问 不可直接访问 不可直接访问
实例方法 直接访问 直接访问 直接访问 直接访问

总之:实例方法的存在必须要有对象实例的存在,如果对象实例不存在,则实例方法也就没有调用它的主人。静态方法的存在前提是类的存在,所以无需声明和New对象。

原文地址:https://www.cnblogs.com/zhaoxure/p/12040294.html

时间: 2024-10-13 19:37:51

C# 学习之 类的静态成员的相关文章

C++面向对象学习-类的静态成员

1 静态数据成员 2 1,sizeof 运算符不会计算静态成员. 3 4 2,对静态成员数据初始化的顺序为它们在类体外声明的顺序. 5 6 3,静态数据成员被类的所有对象所共享,包括该类的派生类对象. 7 8 4,静态成员数据也可以分为公有的.私有的和受保护的静态成员. 9 对公有静态成员,即可以通过类的对象进行访问,也可以通过类名直接访问. 10 私有的和保护的静态成员数据则只能被该类的公有成员函数访问. 11 12 5,在创建任何对象之前,类的静态成员数据已经存在并可以引用. 13 14 6

面向对象课后深入学习(C++ 类的静态成员详细讲解)

今天在刚申请了博客,一下午都在写那个随笔,所以说好的来看c++的也放在了最后,下星期就考试了,这个类的静态成员是我不是很懂的,在网上 看到一片很详细的博客考下来回去慢慢看. 在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存. 静态成员的定义或声明要加个关键static.静态成员可以通过双冒号来使用即<类名>::<静态成员名>.

5、类的静态成员

问题: 如何统计对象的个数呢?     (1)普通的成员变量?不行,因为对于普通的成员变量,对象都有各自的成员变量,他们都是相互独立的,所以并不能实现对象个数的统计     (2)全局变量:可以,但是一般来说,我们都是尽量避免全局变量(周期长,占内存,出错的时候, 不易查找),     (3)类的静态成员变量和静态成员函数: YES 静态成员:     (1)静态成员是属于整个类所有的,不依赖于任何对象,依赖于类的存在(所以才可以通过类名直接访问静态成员变量和静态成员函数),对象的创建和销毁都不

面向对象学习【类-静态类】

静态类只能包含静态成员(使用该类创建的所有对象将共享这些成员的同一个副本).静态类纯粹作为工具方法和字段的一个容器来使用.静态类不能包含任何实例数据或方法.另外,使用new操作符来创建静态类的一个对象是没有意义的.如果坚持这样做,编译器会报错.如果需要执行任何初始化,那么static类可以包含一个默认的构造器,前提是该构造器也被声明为static.其他任何类型的构造器都是非法的,编译器会报错: 比如自己定义一个Math类,其中只包含静态成员,那么应该像下面这样写: public static c

初探swift语言的学习笔记(类对象,函数)

swift扩展了很多功能和属性,有些也比较奇P.只有慢慢学习,通过经验慢慢总结了. 下面将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // Created by apple on 14-6-8. // Copyright (c) 2014年 fengsh. All rights reserved. /* 写本例子的目的在于快速学习swift类的写法,包括知识点: 1.属性设置 2.构造.释构 3.

类的静态成员变量及函数(二十)

我们正常情况下能通过对象名来访问 public 成员变量,每个对象的成员变量都是专属的,成员变量不能在对象之间共享的.我们现在学了这么长时间的 C++,现在又有了一个新的需求:a> 同级在程序运行期间某个类的对象数目:b> 保证程序的安全性(不能使用全局变量):c> 随时可以获取当前对象的数目. 我们首先想到的是定义一个私有成员变量,然后在构造函数中进行 ++ 操作,在析构函数中进行 -- 操作.我们试着写下程序 #include <stdio.h> class Test {

C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存. 静态成员的定义或声明要加个关键static.静态成员可以是Public,Private,Protected:Public的静态成员可以通过双冒号来使用即<类名>::<静态成员名>. 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变

Java学习-023-Properties 类 XML 配置文件读取及写入源代码

之前的几篇 Properties 文章已经讲述过了 Java 配置文件类 Properties 的基本用法,查看 JDK 的帮助文档时,也可看到在 Properties 类中还有两个方法 loadFromXML(InputStream) 和 storeToXml(OutputStream, String, String),由方法名中的 xml 不难确定这两个方法分别是读取/写入数据到 xml 文件.JDK 文档部分如下所示: 因而此文将通过源码实例演示 Properties 类是如何将数据写入

类的静态成员

有的时候类需要它的一些成员与类本身直接相关,而不是与类的各个对象保持关联. 声明静态成员 我们通过在成员的声明之前加上关键字static使得其与类关联在一起,和其他成员一样,静态成员可以使public得或private的.静态数据成员的类型可以使常量.引用.指针.类类型等. 举个例子,我们定义一个类,用它表示银行的账户记录: class Account{ public: void calculate() {amount+=amount*interestRate;} static double r