读书人

C#之静态成员跟静态方法

发布时间: 2013-11-09 17:06:47 作者: rapoo

C#之静态成员和静态方法

刚刚开始接触C#,总结的是自己整理的关于类,静态成员和静态方法的知识;作为自己学习的笔记。

1. 定义

定义一个模板,通过模板生成对象

模板中包含对象的状态和行为

2. 语法

[访问修饰符] class <类名>

{

//类的主体

}

3. 修饰符

C#之静态成员跟静态方法

具体的解释:访问控制权限

类名及所属工程

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

C#之静态成员跟静态方法

2. 创建成功之后就可以访问模板中定义的属性和方法

使用分号来访问变量,方法

C#之静态成员跟静态方法

其中FirstName LastName Balance Deposit为BankCustomer类的属性和方法


C#之静态成员跟静态方法

x可以直接访问

y必须实例化一个对象才可以访问y

3. 静态成员

静态成员与非静态成员比较:

静态变量

非静态变量

形式

使用static修饰符

没有使用static

从属

类所有

类的实例所有

存储方式

在内存中只占同一块区域无论创建多少实例

每创建一个实例,都会在内存中为非静态成员新分配一块内存

使用权限

为各个类的实例公用

类实例化前即可使用

类实例化后才可使用

访问方式

通过直接访问

所属类的所有实例的同一静态变量都是同一值

通过对象访问

同一类的不同实例的同一非静态变量可以是不同的值

创建时间

类装载时被创建

类被实例化时被创建

4. 静态方法

静态方法与非静态方法比较:

静态方法

非静态方法

形式

使用static修饰符

没有使用static

从属

类所有

类的实例所有

存储方式

在内存中只占同一块区域无论创建多少实例

每创建一个实例,都会在内存中为非静态方法新分配一块内存

使用权限

为各个类的实例公用

类实例化前即可使用

类实例化后才可使用

访问限制

只能访问类中静态成员

可以访问类中任何成员

访问方式

通过直接访问

不能使用this等关键字

通过对象访问

创建时间

类装载时被创建

类被实例化时被创建

静态方法调用时无法判断非静态变量使用的内存地址,所以无法使用;而静态变量的地址对类来说是固定的,故可以使用。

静态方法效率比实例化高,静态方法的缺点是不能自动进行销毁,而实例化的则可以做销毁



读书人网 >C#

热点推荐