C#之静态成员和静态方法
刚刚开始接触C#,总结的是自己整理的关于类,静态成员和静态方法的知识;作为自己学习的笔记。
类
1. 定义
定义一个模板,通过模板生成对象
模板中包含对象的状态和行为
2. 语法
[访问修饰符] class <类名>
{
//类的主体
}
3. 修饰符
具体的解释:访问控制权限
类名及所属工程
A
中变量
的访问修
饰符
Project X
Class A
Project X
Class B
derived from A
Project Y
Class C
derived from A
Project X
Class D
Project Y
Class E
Private
Private int i
不可以访问
不可以
不可以
不可以
Internal
Internal int j
可以访问
不可以
可以
不可以
Public
Public int k
可以访问
可以
可以
可以
Protected
Protected int l
可以访问
可以
不可以
不可以
Protected internal
Protected internal int m
可以访问
可以
可以
不可以
1. 实例化
1. 实例化就是通过类这个模板来创建一个对象的过程
使用new关键字来创建
两种方法创建:
创建BankCustomer类的一个对象c
2. 创建成功之后就可以访问模板中定义的属性和方法
使用分号来访问变量,方法
其中FirstName LastName Balance Deposit为BankCustomer类的属性和方法
x可以直接访问
y必须实例化一个对象才可以访问y
3. 静态成员
静态成员与非静态成员比较:
静态变量
非静态变量
形式
使用static修饰符
没有使用static
从属
类所有
类的实例所有
存储方式
在内存中只占同一块区域无论创建多少实例
每创建一个实例,都会在内存中为非静态成员新分配一块内存
使用权限
为各个类的实例公用
类实例化前即可使用
类实例化后才可使用
访问方式
通过类直接访问
所属类的所有实例的同一静态变量都是同一值
通过对象访问
同一类的不同实例的同一非静态变量可以是不同的值
创建时间
类装载时被创建
类被实例化时被创建
4. 静态方法
静态方法与非静态方法比较:
静态方法
非静态方法
形式
使用static修饰符
没有使用static
从属
类所有
类的实例所有
存储方式
在内存中只占同一块区域无论创建多少实例
每创建一个实例,都会在内存中为非静态方法新分配一块内存
使用权限
为各个类的实例公用
类实例化前即可使用
类实例化后才可使用
访问限制
只能访问类中静态成员
可以访问类中任何成员
访问方式
通过类直接访问
不能使用this等关键字
通过对象访问
创建时间
类装载时被创建
类被实例化时被创建
静态方法调用时无法判断非静态变量使用的内存地址,所以无法使用;而静态变量的地址对类来说是固定的,故可以使用。
静态方法效率比实例化高,静态方法的缺点是不能自动进行销毁,而实例化的则可以做销毁