本帖最后由 jerviscui 于 2013-6-23 20:37 编辑
提到面向对象,必定会想到三要素:封装、继承、多态。以下是个人的理解: 封装:对一类事物抽象出共同的属性、方法,封装成类。对外只提供功能实现的接口供用户使用,而用户不必考虑接口内部是如何实现的。 继承:类之间可以有继承的关系。子类可以拥有父类指定的方法和属性,在次基础上子类还可以制定父类没有的方法和属性。 多态:指同一实体同时具有多种形式。将子类对象赋值给它的父类对象后,父对象自动调用子类中重写的方法。 多态的好处:把不同子类对象都当做父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,以适应需求的不断变化。
属性、字段、方法都可以叫做类的成员。 字段:就是类的状态(就是C++中的属性)。变量开头字母应小写。 属性:我理解为带有get、set方法的字段。变量开头字母应大写。 方法:类内成员函数。 通过public、private等访问控制限制成员在哪些地方可以被调用。应该注意字段不要设置为public。 属性的书写格式: class Person { private string name; public string Name { set { this.name = value; } get { return name; } } } } 可以简化成: class Person {
public string Name { get; set;}
} 属性成员写操作时候调用set方法,读操作时调用get方法。只写get或set方法,构成只读或只写属性。
通过构造函数完成类对象的创建。没有声明构造函数的情况下,会自动创建无参构造函数。 1.构造函数名和类名相同,无返回值。 2.构造函数可以没有参数 3.可以有多个构造函数,构成重载
当对象脱离其作用域时,系统自动执行析构函数。同样没有声明析构函数的情况下,会自动创建析构函数。 1.一个类只能有一个析构函数。 2.析构函数无参数、无返回值。 3.析构函数不能被调用(自动被编译器调用)。
try { } catch (Exception ex) { } throw new Exception(); // 通过throw抛出自定义异常 其实报出异常时的对象是Exception类的子类,使用Exception类对象执行子类方法,这就是多态的应用。
1.static修饰的类成员和方法不需要实例化对象,直接通过类名.调用。 2.static方法中可以调用其他static成员,但不能调用非static成员。非static方法可以调用static成员。 3.static修饰的类叫做静态类,静态类多用来实现函数库。
不同于C++使用域名解析::,C#中调用指定命名空间的方法,通过命名空间.方法名的方式调用。也可以使用 using 命名空间;来打开命名空间。
C#中提供了按照索引器进行访问的方法。索引器相当于属性的一个扩展,通过类对象[索引器参数列表]的方式调用索引的get、set方法。 一个类中可以有多个不同参数列表的索引器构成重载。 class Person { public string this[int index] { set { } get { return ""; } } } Person p = new Person(); p[1] = "A"; //索引器写操作调用set方法 Console.WriteLine(p[1]); //索引器读操作调用get方法 仅有get或者set的方法构成只读只写索引器
-The End- © Jervis
|