A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 化宝峰 中级黑马   /  2012-8-9 10:41  /  2197 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static类为静态类,静态类中可以有一个静态构造函数,但是静态类不能实例化。
我知道System.Console类是静态类。
请问,在什么情况下使用静态类,多多益善,谢谢!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
访问频率很高的类并且占用资源很少的情况下,一般将该类用static进行修饰。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
假设有一个类 CompanyInfo,它包含用于获取有关公司名称和地址信息的下列方法。
class CompanyInfo  

{  

public string GetCompanyName() { return "CompanyName"; }  

public string GetCompanyAddress() { return "CompanyAddress"; }  

//...  

}  
不需要将这些方法附加到该类的具体实例。因此,您可以将它声明为静态类,而不是创建此类的不必要实例,如下所示:
static class CompanyInfo  

{  

public static string GetCompanyName() {   
return "CompanyName"; }  

public static string GetCompanyAddress() {   
return "CompanyAddress"; }  

//...  

}  
使用静态类作为不与特定对象关联的方法的组织单元。此外,静态类能够使您的实现更简单、迅速,因为您不必创建对象就能调用其方法。以一种有意义的方式组织类内部的方法(例如 System 命名空间中的 Math 类的方法)是很有用的。静态成员
即使没有创建类的实例,也可以调用该类中的静态方法、字段、属性或事件。如果创建了该类的任何实例,不能使用实例来访问静态成员。只存在静态字段和事件的一个副本,静态方法和属性只能访问静态字段和静态事件。静态成员通常用于表示不会随对象状态而变化的数据或计算;例如,数学库可能包含用于计算正弦和余弦的静态方法。
在成员的返回类型之前使用 static 关键字来声明静态类成员,例如:
public class Automobile  

{  

public static int NumberOfWheels = 4;  

public static int SizeOfGasTank  

{  

get

{  

return 15;  

}  

}  

public static void Drive() { }  

public static event EventType RunOutOfGas;  
//other non-static fields and properties...  

}  
静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化。若要访问静态类成员,应使用类名而不是变量名来指定该成员的位置。例如:
Automobile.Drive();  

int i = Automobile.NumberOfWheels;

评分

参与人数 2技术分 +1 黑马币 +6 收起 理由
宋天琪 + 1
化宝峰 + 6

查看全部评分

回复 使用道具 举报
静态类会先初始化,最大的亮点是静态类的属性和方法不能更改,使用在值不变的引用比较适用,如飞行棋的的名称显示等

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
大量多次访问且类本身不占多少资源时用

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
黑马高鑫 发表于 2012-8-9 11:55
静态类会先初始化,最大的亮点是静态类的属性和方法不能更改,使用在值不变的引用比较适用,如飞行棋的的名 ...

嘿嘿,谢谢,学以致用最好了!
回复 使用道具 举报
许庭洲 发表于 2012-8-9 11:26
访问频率很高的类并且占用资源很少的情况下,一般将该类用static进行修饰。 ...

这个很实际,谢谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马