用静态方法和实例化都可以访问到类的方法,使用时经常会混淆,比如:
class myclass
{
public static list<entity> myfunction_1(){....}
public list<entity> myfunction_2(){....}
public list<entity> myfunction_3(){....}
}
list<entity> test1 = myclass.myfunction_1();
list<entity> test2 = new myclass().myfunction_2();
list<entity> test3 = new myclass().myfunction_3();
或者
myclass objclass= new myclass();
list<entity> test2 = objclass.myfunction_2();
list<entity> test3 = objclass.myfunction_3();无论使用上面任一种方法都可以调用类里面的方法,请问什么情况用静态方法,什么情况用实例化对象
呢,什么时候要分开实例化呢,或者是根本可以随便用都可以呢?
class myclass
{
public static list<entity> myfunction_1(){....}
public list<entity> myfunction_2(){....}
public list<entity> myfunction_3(){....}
}
list<entity> test1 = myclass.myfunction_1();
list<entity> test2 = new myclass().myfunction_2();
list<entity> test3 = new myclass().myfunction_3();
或者
myclass objclass= new myclass();
list<entity> test2 = objclass.myfunction_2();
list<entity> test3 = objclass.myfunction_3();无论使用上面任一种方法都可以调用类里面的方法,请问什么情况用静态方法,什么情况用实例化对象
呢,什么时候要分开实例化呢,或者是根本可以随便用都可以呢?
解决方案 »
- 多线程录音并进行MP3编码时报错:未处理的AccessViolationException:尝试读取或写入受保护的内存。者通常指示其他内存已损坏。
- 服务器上没有安装EXCEL, 如何能调生成电子表格呢?
- 》》严重问题:Winform中文本框DataBindings无法实现绑定效果!!!
- 五子棋的算法和哪个经典算法相似(我的面试题)
- 获得选中按钮的名称
- C#实现从excle导入到sqlserver
- 急需枪手
- 如何把一个PropertyCollection所有的键名和值拷贝到另一个PropertyCollection里面
- 缓存应该怎么建比较好?
- 关于编写控件:如何使自制下拉控件,在下拉时,下拉框能超出其所在窗体的范围,就像combobox一样?(内祥)
- Thread问题
- 在没有装vs的电脑上运行Winform
用真实案例比喻
注册用户就是类
那么我们的类有可能是这样写的public class 注册用户
{
void 发帖();
//同时,有一个静态方法
static void 禁止发帖();
void 禁止发帖();
}那么,你在发帖的时候,可能系统会做这样一条命令
注册用户 guolucky2003 = new 注册用户();
guolucky2003.发帖();这代表你的发帖行为;如果你被和谐了,管理员可能会禁止你的发帖,那么系统会做这么一个动作
guolucky2003.禁止发帖();也许,因为和谐,大家都不能说话了,管理员为了不被管理员的管理员和谐,只能和谐我们这些无奈的注册用户了
那么,管理员会禁止大家发言,那么,系统会做这个动作
注册用户.禁止发帖();--------------------------------
静态与实例的区别是
实例针对某一特定实例,
静态针对类.(某种意义上该结论成立)