对象和实例的困惑 waiting
对象和实例的理解一直是我困扰的问题,网上的说明和教科书上的说明都很抽象,我不能完全理理解他们区别。
1。对象是类的一个实例,的确没错,但是什么时候需要实例,什么时候却不需要,我无法确认。
比如有些类中封装的方法必须需要靠new个实例才能去使用类中的方法,否则即使能用类访问到静态方法我使用了也会报错?
疑惑是类既然能访问其中的静态方法,为什么不能拿来用,而必须要new个实例,那么这个静态方法又有什么用呢?
2。有些类却无需创建实例,直接定义就可以使用,也不报错。我如何知道这个类必须实例能用还是不需要实例就可以用?
以上的这些问题,是不是跟是否有指针的指向有关呢?
请大虾们能用通俗的话讲解下或者内部的机制如何操作的。
[解决办法]
1.实例怎么访问静态方法,直接用类访问就行了,实例可以访问非静态的东东
2.什么叫直接定义就能用?一般有些类封装了静态类和方法如System.Console本身就是一个静态的类,其里面都是静态的方法和属性,当然直接那过来就能用了
总之,静态的东西相当于全局定义好的,直接就能用了,并不用要什么初始化实例之类的
[解决办法]
public class C
{
public void a()
{
}
public static void b()
{
}
}
我很菜的写程序,一般没有复杂操作的都写成静态的(类似于面向过程时的函数),需要对特定对象操作的就写成非静态的.
C c1=new C();
c1.a();
C.b();
[解决办法]
class A { public string s1 = "123"; public static string s2 = "456"; public void doSome() { } public static void doMore() { } }
[解决办法]
对象和实例的理解一直是我困扰的问题,网上的说明和教科书上的说明都很抽象,我不能完全理理解他们区别。
1。对象是类的一个实例,的确没错,但是什么时候需要实例,什么时候却不需要,我无法确认。
比如有些类中封装的方法必须需要靠new个实例才能去使用类中的方法,否则即使能用类访问到静态方法我使用了也会报错?
疑惑是类既然能访问其中的静态方法,为什么不能拿来用,而必须要new个实例,那么这个静态方法又有什么用呢?
不用实例化的:
静态方法是为类提供的公共方法,也就是这个方法对所有属于这个类的对象适用。
例如,假设为男人定义一个类,该类有个方法用来查询男人是否有小鸡鸡,那么从现阶段的生物进化来看,男人都是有小鸡鸡的。
也就是不必具体到某个男人,就知道他有小鸡鸡。所以这个方法应定义为静态方法,因为是对所有男人适用的。
要实例化的:
每个人都有身高体重,当你要查询人的体重时,你肯定先要指定是那个人的体重。这个过程就是相当于实例化,具体到了个人。
你不实例化,也就是不指定是那个人。那么你要查谁的体重?
===============
2。有些类却无需创建实例,直接定义就可以使用,也不报错。我如何知道这个类必须实例能用还是不需要实例就可以用?
以上的这些问题,是不是跟是否有指针的指向有关呢?
请大虾们能用通俗的话讲解下或者内部的机制如何操作的。
有些类却无需创建实例,直接定义就可以使用。这种类型往往是面向公众的,如政府机构,提供了一系列的服务。这些服务每个人都是适用的. 所以这个可以是静态的。
我如何知道这个类必须实例能用还是不需要实例就可以用? 这个和问题域有关,如前面所说,当你是研究男人有没有小鸡鸡时,这个不用实例化就能查询到。
当你要查询体重时,就要具体到某个人,就是要实例化。
[解决办法]
C#中 如果对象不实例化!会出现 使用对象为引用的现象!
实例化 就像是
定义 List<T> list; //我自己说自己是一个List<T>但是 程序不知道!
实例化 list=new List<T>;//程序知道我是一个List<T>了
这是我对c#中的实例化理解 不知道对你有没有帮助
[解决办法]
所有的东东都是
对象(object)
包括对象的实例(instance)
------解决方案--------------------