C#中class A:B是什么意思
B是基类,A是子类,其实冒号(:)可以理解为java中的extend
意为延伸,延长,也被称为扩展类。
我们使用(Unified Modeling Language)UML语法来研究C#的类与对象
用于表示类其中+表示公共成员-表示私有成员
用于表示实例化对象
在UML语法中,类的静态成员下有一条下划线
在.NET Framework使用构析函数来清理对象,一般情况下是不需要我们去写构析函数代码的,而是由默认的析构函数自动执行,如果在删除对象实例前需要完成某些操作的话就需要手动去写构析函数代码了,例如在函数中一个变量超出作用域范围了我们要把,只有在.NET程序执行时才能够清除该变量的时候采用手动清除
静态构造函数:使用类的静态成员的时候要先设置其初始值这个时候我们就用到我们的静态构造函数,一个类只有一个静态构造函数,该构造函数不能有访问修饰符
OOP技术:
。接口
。继承
。多态性
。对象之间的关系
。运算符重载
。引用类型和值类型
接口: 接口名一般以大写I开头
在UML中接口是采用棒棒糖语法来表示:
抽象方法不能有方法体,且不能私有化,继承的子类一定要实现其中的抽象方法,其他的方法可以扩展,抽象方法的访问修饰符默认是私有
抽象类的非抽象方法的作用?扩展?不能调用?
接口
关于接口可删除对象的接口:IDisposable接口,支持该接口的对象必须实现Dispose方法,该方法能在对象超出作用域的时候调用来清除该对象
C#允许一种可优化使用这个方法的结构。Using关键字可以在代码块中初始化使用重要的资源对象,用法如下:
<ClassName> <variableName> = new <ClassName>
......
Using(<variableName>)
{
.......
}
Using <ClassName> <variableName> = new <ClassName>
{
........
}
C#中只有三种访问修饰符:private(只能够在自身类被访问)、protected(能被自身类和它的派生类访问)、public(能被任何类访问,共享)
虚拟成员:成员可以由它继承的类重写,派生类可以提供成员的另一种实现代码,它不会删除原来的代码;重写父类中的成员,用virtual修饰;子类中对应override修饰
在UML中,公共成员用+表示,其他成员用-(私有成员)、#(受保护的成员)和斜体(虚拟成员)表示。抽象类的名称以斜线显示(有时他们的方框是以虚线显示)
如果原始变量的类型不是自身或自身的派生与自身类的子类,强制转换为这个自身类将会报错。
关于C#中对象之间的关系:继承关系、包含关系、集合关系
包含关系:一个类包含另一个类,这类似于继承
字段(field)
是类中最常见的成员之一
只读字段:
由 readonly (只读)修饰的字段只能在定义时或构造函数中赋值。
如果试图在构造函数之外的地方修改只读字段,就会发生编译错误。