日期:2014-05-17  浏览次数:20811 次

初学C#,关于类和对象的概念不是很理解,求教。
1、类的静态成员和非静态成员有什么区别?静态成员是属于类的,那非静态成员是属于谁的,类和对象所共有的吗?
2、静态成员可以通过 类名.静态成员名 来引用,非静态成员能否这样引用(类名.成员名)?
3、类里面定义一个私有成员,然后用这个类实例化一个对象,对象是否也拥有这个私有成员,还是对象里根本就不包含这个成员。
4、类的成员是否也即是对象的成员?比如类里面定义了一些成员,然后用类创建一个对象,那么类里面的那些成员是否也是对象的成员,为对象所拥有。引用实例成员可以用 对象名.成员名 来引用,那此时是引用对象的成员,还是对象去访问类的成员。比如定义一个Person类,里面有一个public int a;然后再new一个person1对象,此时person1.a 表示的是引用对象person1的成员a 呢,还是对象person1访问类的成员a?(我看到有些书上这样写,大惑不解啊。。。)
小弟菜鸟,刚学C#没多久,望各位老鸟不要笑话,帮忙解疑,感激不尽。

------解决方案--------------------
1.静态成员是该类所有对象共有的一个,而非静态成员则是针对对象 ,每个对象的都可能不一样。
2.非静态成员 只能是对象.成员 因为该成员属于对象 其他对象则不适用
3.私有成员实例化后也是拥有该成员的,但是外部无法访问;
4.这个问题就像是在问 “马会叫,黑马也会叫, 黑马属于马这个类, 会叫这个动作 是马的 还是黑马的! 马有四条腿,黑马也有四条腿, '四条腿' 是访问的马的 还是访问的 黑马的”? 类是对象的抽象 ,类的成员 是该类下所有成员都具有的属性或动作等,但是对象的属性或动作都不一定相同。
------解决方案--------------------
1:非静态成员是对象的
2:通过 实例名.成员 来访问
3:私有实例成员对象有 但是不能从外部访问 如果你试着访问的话编译器报错就是该对象被保护 说明成员是存在的 但是不能访问
4:类成员就是类成员 每个类都会有一个相对应的type类存放在堆里面 静态成员等都被放在这里 实例对象获取的静态成员其实是从这个type类里面来的
------解决方案--------------------
http://blog.sina.com.cn/s/blog_60e96a410100ispv.html