您的位置:首页 > 其它

静态方法的学习

2009-05-29 16:48 148 查看
什么是静态方法[转]

静态方法的1个特别作用就是不用创建类的对象,而直接用类里面的方法(public static 2个条件),

例如: class A { public static void b() {..............} }

可以这样直接用: A.b(); 那么在程序中如何可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据,比如连接字符串,配置信息等,当满足上面所说的两点时,进行一次读取,以后就可以方便的使用了,同时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。 static: 类变量(对象共享)可以用类名,对象名点取,间接使用。 类方法

1)static方法中不能直接使用非静态成员, 因为非静态成员与实例相关,通过对象点取间接使用

2)static方法中不能用this(与实例相关)

3)非static方法中可以使用static成员

静态方法有什么弊端? [转]

问:我翻看一些源码工程时看到几乎没有什么静态方法唯独Ms的SQLHelper中几乎全是静态方法 为什么呢?

答1:在一些系统中使用非常频繁的方法都使用静态方法可以提高系统性能我是这么认为的.

答2:本身不可升级, 重写 这要看一个软件产品的目的是什么了.

答3:为了方便,不用实例化,但这样程序编译运行时就占用了系统资源.

答4:静态的属性和方法在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放还有就是,所有访问者看到的静态属性的数据几乎都是一样的,比如A用户设置了UserName这个属性,B用户访问的时候,得到的UserName仍然是A用户设置的那个。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的.

答5:静态方法/数据成员是属于类的,不是属于某一个对象的,因而调用它不需要实例化;静态方法和静态数据成员相当于共享变量。为该类的所有对象所共有,因而在需要共享数据时,定义这种类型时很好的选择。 一但定义一个类后(不一定要实例化对象)该类的所有静态成员就载入内存(并不是程序启动,就装入内存,没有定义该类时它不会载入内存) 静态成员的作用域与它所属的类的作用域相同.

常见的静态方法举例

Main()方法 //作为一个程序的入口我们必须将其定义为static方法,否则执行时必须先实例化包含该方法的类才行,这样显然会存在很多问题。

Console.WriteLine(); //通过调用方式我们可以很明显的发现WriteLine()方法是静态的方法。

Convert.ToString(); //ToString()方法也是直接通过Convert的class type调用的,自然是静态方法了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐