126 lines
2.7 KiB
C#
126 lines
2.7 KiB
C#
|
|
namespace Lesson8
|
||
|
|
{
|
||
|
|
#region 知识回顾
|
||
|
|
class 类名
|
||
|
|
{
|
||
|
|
#region 特征——成员变量
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 行为——成员方法
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 初始化调用——构造方法
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 释放时调用——析构方法
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 保护成员变量——成员属性
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 索引器
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 静态成员
|
||
|
|
#endregion
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#region 知识点一 静态类
|
||
|
|
//概念
|
||
|
|
//用static修饰的类
|
||
|
|
|
||
|
|
//特点
|
||
|
|
//只能包含静态成员
|
||
|
|
//不能被实例化
|
||
|
|
|
||
|
|
//作用
|
||
|
|
//1.将常用的静态成员写在静态类中 方便使用
|
||
|
|
//2.静态类不能被实例化,更能体现工具类的 唯一性
|
||
|
|
//比如 consle就是一个静态类
|
||
|
|
|
||
|
|
static class Tools
|
||
|
|
{
|
||
|
|
public static int testIndex = 0;//静态成员变量
|
||
|
|
|
||
|
|
public static void TestFun() { }
|
||
|
|
public static int TestIndex
|
||
|
|
{
|
||
|
|
get { return testIndex; }
|
||
|
|
set { testIndex = value; }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#region 知识点二 静态构造函数
|
||
|
|
//概念
|
||
|
|
//在构造函数加上 static 修饰
|
||
|
|
|
||
|
|
//特点
|
||
|
|
//1.静态类和普通类都可以有
|
||
|
|
//2.不能使用访问修饰符
|
||
|
|
//3.不能有参数
|
||
|
|
//4.只会自动调用依次
|
||
|
|
|
||
|
|
//作用
|
||
|
|
//在静态构造函数中初始化
|
||
|
|
|
||
|
|
//1.静态类中的静态构造函数
|
||
|
|
static class StaticClass
|
||
|
|
{
|
||
|
|
public static int testInt = 100;
|
||
|
|
public static int testInt2 = 200;
|
||
|
|
public static int testInt3;
|
||
|
|
|
||
|
|
static StaticClass()
|
||
|
|
{
|
||
|
|
Console.WriteLine("静态构造函数");
|
||
|
|
testInt3 = 300;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//2.普通类中的静态构造函数
|
||
|
|
class NormalClass
|
||
|
|
{
|
||
|
|
public int testInt;
|
||
|
|
public int testInt2 = 200;
|
||
|
|
public static int testInt3;
|
||
|
|
static NormalClass()
|
||
|
|
{
|
||
|
|
testInt3 = 300;
|
||
|
|
Console.WriteLine("静态构造函数");
|
||
|
|
}
|
||
|
|
public NormalClass()
|
||
|
|
{
|
||
|
|
testInt = 100;
|
||
|
|
testInt3 = 300;
|
||
|
|
Console.WriteLine("构造函数");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
|
||
|
|
internal class Program
|
||
|
|
{
|
||
|
|
static void Main(string[] args)
|
||
|
|
{
|
||
|
|
Console.WriteLine("Hello, World!");
|
||
|
|
|
||
|
|
Console.WriteLine(StaticClass.testInt);
|
||
|
|
|
||
|
|
Console.WriteLine(StaticClass.testInt2);
|
||
|
|
|
||
|
|
Console.WriteLine(StaticClass.testInt3);
|
||
|
|
|
||
|
|
|
||
|
|
Console.WriteLine(NormalClass.testInt3);
|
||
|
|
NormalClass n1 = new NormalClass();
|
||
|
|
Console.WriteLine(n1.testInt);
|
||
|
|
Console.WriteLine(n1.testInt2);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|