静态类和类成员

1. 静态类仅包含静态成员

2. 无法实例化

3. 是密封的,不能被继承

4. 可以有一个静态的构造函数,不能包含实例构造函数

5. 直接用类名和成员访问静态成员

6. 静态类的一个普通用途可能就是创建一个包含一组数学方法的数学库

public static class MyMath
{
      public static float PI = 3.14f;
      public static bool IsOdd(int x)
      {
          return x % 2== 1;
      }
}

a. 非静态类可以包含静态的方法、字段、属性或事件

b. 静态方法和属性不能访问非静态字段和事件

c. const字段本质上是静态的

public class Automobile
{
      private static int Val;
      private const int NumberOfWheels= 4; //const当做静态字段处理
      public static void Print()
      {
          Console.WriteLine("The automobile have {0} wheels.", NumberOfWheels);
      }
      public static int Size //只能访问静态的字段
      {
          get
         {
             return Val;
          }
          set
          {
             Val = value;
          }
      }
}
时间: 2024-10-12 11:34:05

静态类和类成员的相关文章

类成员函数可以为回调函数吗

关于类成员函数是否可以成为回调函数,我们首先需要明确几个定义,1. 什么是回调函数 2. 为什么要使用回调函数 3. 调用普通类成员函数和调用回调函数有什么区别 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数 为什么要使用回调函数? 因为可以把调用者与被调用者分开.调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型.某些限制条件(如返回值为int

2017-9-23C#笔记(类的索引,事件,运算符,this访问器,派生,分部类,抽象类,封闭类,静态类,类与结构的不同)

1.类的索引 索引是一组get和set锋访问器,支持按照饮用数组元素的方法来引用对象.索引通常便是多个数据成员,并且它总是以雷类的事例成员的方式存在.声明索引的方法: 返回类型     this  [参数列表] { Get {    } set {        } } 例如:using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplicat

类成员函数的指针与多态性

1 类成员函数的指针 2 类成员函数的指针数组 3 指向类成员函数的指针的指针 1 类成员函数的指针 auto func1 = &com::jia;//C++函数指针 int (com::*p)(int, int) = &com::jia;//C函数指针 1 #include <iostream> 2 3 class com 4 { 5 private: 6 int a; 7 int b; 8 public: 9 com(int x, int y) :a(x), b(y) 10

C++ 获取类成员函数地址方法 浅析

C语言中可以用函数地址直接调用函数: void print () { printf ("function print"); } typdef void (*fun)(); fun f = print; f(); C++中类非静态成员函数必须通过实例去调用,C++中类成员函数调用: class test { public: void print () { printf ("function print"); } }; 我们同样可以通过定义函数指针来调用如下: type

C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题

#include "stdafx.h" #include <iostream> #include <algorithm> using namespace std; class Base { public: int num; virtual void func() { cout<<"Do something in Base"<<endl; } }; class Derived:private Base { public:

类成员变量初始化的问题

class window{ window(int maker){ System.out.println("window"+maker); } } class House{ window w1 ;//new window(1); window w3 = new window(3); House(){ System.out.print("House"); w3 = new window(33); } window w4 = new window(4); } class

C++的const类成员函数

转自:http://blog.csdn.net/lihao21/article/details/8634876 我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误.例如, [cpp] view plain copy const char blank = ''; blank = '\n';  // 错误 面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据成员.若要修改类对象,应调用公有成员函数来完成.为了保证const对象的常量性,编译器

Java 类成员的初始化顺序

Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究. ? 1 ?无继承情况下的Java初始化顺序: class Sample { Sample(String s) { System.out.println(s); } Sample() { System.out.println("Sample默认构造函数被调用"); } } class Test { static Samp

c++ static 类成员

一.什么是static类成员 对于特定类类型的全体对象而言, 访问一个全局对象有时是必要的. 然后,全局对象会破坏封装: 对象需要支持特定类抽象的实现. 如果对象是全局的, 一般的用户代码就可以修改这个值. 类可以定义类静态成员,而不是定义一个可普遍访问的全局对象. 通常, 非static数据成员存在于类类型的每个对象中. 不像普通的数据成员, static数据成员独立于该类的任意对象而存在, 每个static数据成员是与类关联的对象, 并不与该类的对象相关联. 类也可以定义static成员函数