标签:style blog color io 使用 ar strong sp 数据
一.结构
二.垃圾回收机制
GC.GetGeneration(p);得到指定对象所在的代;
GC.MaxGeneration;返回代数;
GC.Collection();立即让垃圾回收器对所有的代进行回收;
GC.Collection(int);对指定的代立即进行垃圾回收;
三.析构函数
示例:
~Person()
{
Console.WriteLine(“我是析构函数!”);
}
四.静态成员
实例成员是没有static关键字修饰的,是属于对象的,通过对象名.实例成员来访问。
2.在一个类被加载的时候,这个类下的所有静态成员都会被加载。
3.静态成员只被创建一次,所以静态成员在整个程序的运行中只有一份,而对于示例成员来说,有多少对象就有多少份。
4.静态成员会被创建在静态存储区中,一旦创建,直到程序退出才会被回收。静态成员一定程度上会对程序的效率产生影响。
5.变量需要被共享,在整个程序中需要经常被调用的时候,就可以将这些成员定义为静态成员。
6.在静态方法中,不能直接调用实例成员,因为静态方法被调用的时候,对象还有可能不存在。
7.this/base关键字在静态方法中不能使用,因为有可能对象还不存在。
8.在实例方法中可以调用静态成员,因为这个时候,静态成员肯定存在。
静态成员和实例成员的比较:
(1)生命周期;
(2)存储位置;
五.静态类
六.静态构造函数
程序示例:
1 public class Person 2 { 3 static public int num; 4 public Person() 5 { 6 num=1; 7 Console.WriteLine("实例构造函数"); 8 } 9 static Person() 10 { 11 num=2; 12 Console.WriteLine("静态构造函数"); 13 } 14 } 15 static void Main(string[] args) 16 { 17 Console.WriteLine(Person.num); //输出:2 18 Person p = new Person(); 19 Console.WriteLine(Person.num); //输出:1 20 Console.ReadKey(); 21 }
七.继承
程序示例:
1 public Student():base(12,”jack”,true) 2 { 3 Console.WriteLine(“我是子类构造函数……”); 4 }
7. 在调用子类的时候,为防止数据冲突,会优先处理父类中的数据,完成父类数据的初始化。
8.继承的特征:
(1) 单根性,子类只能有一个父类;
(2) 传递性;
9.Object是所有类的祖宗类,所有的类都是从object类继承的。
10.什么情况下会用到继承?
父类只要有一个功能不是子类所需要的,子类就不应该继承,子类和父类是is a的关系。例如,狗会走,人也会走,但是Person类不能继承Dog类;然而Student类可以继承Person类。
11.子类成员与父类成员存在同名的时候?
父类与子类存在同名的时候,如果创建一个子类对象,调用这个子类对象的同名方法,会调用子类的。
12.new关键字的第二个作用,隐藏父类的同名成员。
程序示例:
父类:
1 class Person 2 { 3 Public void Test() 4 { 5 Console.WriteLine(“我是父类的”); 6 } 7 }
子类:
1 class Student:Person 2 { 3 public new void Test() 4 { 5 Console.WriteLine(“我是子类的”); 6 } 7 }
标签:style blog color io 使用 ar strong sp 数据
原文地址:http://www.cnblogs.com/HuoAA/p/4029677.html