目录
七.异常
错误处理
八.面向对象编程
类
对象
静态
OOP技术(重要)
接口-新鲜
继承
多态
变量的存储方式
8.5练习答案
九.定义类
修饰符
指定接口
定义接口
执行构造函数
类图
9.10练习答案
结构化异常处理语法:try、catch、finally
使用异常处理可以防止应用程序终止
异常处理有什么应用呢?
.NET OOP
实例:使用类时
构造阶段:初始化、实例化阶段
析构阶段:删除对象、清除内存阶段。尽量避免实现析构函数。
成员:对象中的内容
静态成员、静态构造函数、静态类
接口、继承、多态、对象、重载、事件、引用
dispose()方法可以提前释放资源,使用using可以自动调用dispose()
using (<类名> <变量名> = new <类名>()){……}
或者
<类名> <变量名> = new <类名>();
using(<变量名>){……}
protected:派生类
public:派生类和外部
private:基类
基类成员可以是虚函数,这样方便派生类成员重写。因此虚拟成员不能私有。
抽象类:啥都没有,就指着继承的成员自己写,且必须写。
应用:派生于同一类的不同对象上进行操作时。
接口的多态:可以以相同方式访问多个对象。调用结果取决于被赋予的变量。
IConsume 变量名;
变量名 = 牛;
或者
变量名 = 蔬菜;
变量名.EatFood();
值类型:直接存储。总是包含值。
引用类型:指向引用,引用指向存储。可以是NULL。
1.公共、通配符、松散的受保护的、私有
2.不对
3.不是
内部类的开放程度不能比基类大。
public class MyClass : MyBase,ItewoInterface,ImyInterface{
//(基类),(接口)
}
public(internal) interface IMyInterface(: IMyBaseInterface){
//
}
为什么要定义一个构造函数而不是用默认的呢?
因为如果新建了其他构造函数,那么程序将默认使用这个构造函数,阻止前面无参的代码运行。因此,要显式的构造出抽早函数。
:base(i),代表先执行有指定参数的构造函数。
VS可以自动生成类图。
接口和抽象类使用上的区别:接口是相同功能、抽象类是相同成员
结构和类的区别:类是引用类型,如果直接a=b则是地址相等。结构是值类型。(C#中隐藏了指针)
浅度和深度复制:就是上面的问题,如果你随便复制了一下有可能会导致原本的值发生变化。
1.sealed
2.抽象类,啥也没有的类
3.为什么创建抽象类呢?
为了可扩展。food-apple、banana、hamburger……
https://blog.csdn.net/weixin_43826242/article/details/84931669
为什么创建静态类呢?
可以作为全局的函数和类来进行使用。(因为无法修改所以可能比较稳健?)
线程安全、效率等:https://www.cnblogs.com/huaxi-baobao/p/6924595.html
抽象类和静态类的区别是什么?
抽象类是可以被创建的。(它还需要子类帮他完善方法呢)
静态类是无法被创建的类。(固定的那种)