首页 > 代码库 > 【学习笔记】C# 静态类

【学习笔记】C# 静态类

  • 静态修饰符
    • 用static修饰的成员是静态成员
    • 静态成员只能由类来调用
    • 用static修饰的类是静态类
    • 静态类不能实例化,只能包含静态成员和const常量
  • 在内存中一共有五个区域
    • 1. 堆区-需要程序员手动开辟,并管理内存
    • 2. 栈区-由系统自动完成内存管理
    • 3. 静态区(全局区)- 层序运行过程中的数据一直存在
    • 4. 常量区-用于存放常量
    • 5. 代码区-存放程序运行所需要的代码
  • 静态构造
    • 构造方法也可以设置为静态
    • 静态构造不能有参数和访问修饰符
    • 不管是不是静态类,都可以有静态构造
    • 静态构造会在第一次实例化或调用静态成员时调用
  •  1 using System;
     2 
     3 namespace StaticClassDemo
     4 {
     5     //静态 static 
     6     //静态的字段、属性或方法,只能由类调用,不能够由实例调用
     7     //使用类创建对象的过程叫做实例化,对象也可以称作实例
     8 
     9     //静态类
    10     //在静态类中,只能包含静态的成员(字段、属性、方法)、const常量
    11     public static class A
    12     {
    13         //静态字段
    14         public static int i;
    15 
    16         //构造方法
    17         //1.静态构造方法前不允许添加访问修饰符
    18         //2.静态构造方法可以存在于静态类中,也可以在普通类中
    19         //静态构造方法
    20         //静态构造方法会在首次访问类
    21         /*public*/ static A()
    22         {
    23             Console.WriteLine("A 的静态构造方法");
    24         }
    25 
    26         //静态方法
    27         public static void Test()
    28         {
    29             //string str = "Li";
    30             //const int age = 19;
    31             Console.WriteLine("test");
    32         }
    33     }
    34     //2.静态构造方法可以存在于静态类中,也可以在普通类中
    35     public class B
    36     {
    37         public static int age;
    38         //静态构造会在创建对象,并在初始化之前调用
    39         static B(){
    40             Console.WriteLine("B 的静态构造方法");
    41         }
    42     }
    43     class Program
    44     {
    45         static void Main(string[] args)
    46         {
    47             //A a = new A();
    48             //a.i = 10;
    49             //Console.WriteLine(a.i);
    50             
    51             //直接使用类名调用静态成员
    52             A.i = 10;
    53             Console.WriteLine(A.i);
    54             A.Test();
    55 
    56             B.age = 10;
    57 
    58             B b = new B();
    59 
    60             //在内存中一共有五个区域
    61             //1. 堆区-需要程序员手动开辟,并管理内存
    62             //2. 栈区-由系统自动完成内存管理
    63             //3. 静态区(全局区)- 层序运行过程中的数据一直存在
    64             //4. 常量区-用于存放常量
    65             //5. 代码区-存放程序运行所需要的代码
    66         }
    67     }
    68 }

     

【学习笔记】C# 静态类