C#入门经典(第五版)笔记(三)第7-9章 异常、面向对象编程、定义类

目录

七.异常

错误处理

八.面向对象编程

对象

静态

OOP技术(重要)

接口-新鲜

继承

多态

变量的存储方式

8.5练习答案

九.定义类

修饰符

指定接口

定义接口

执行构造函数

类图

9.10练习答案


七.异常

错误处理

结构化异常处理语法:try、catch、finally

使用异常处理可以防止应用程序终止

异常处理有什么应用呢?

八.面向对象编程

.NET OOP

实例:使用类时

对象

构造阶段:初始化、实例化阶段

析构阶段:删除对象、清除内存阶段。尽量避免实现析构函数。

成员:对象中的内容

静态

静态成员、静态构造函数、静态类

OOP技术(重要)

接口、继承、多态、对象、重载、事件、引用

接口-新鲜

dispose()方法可以提前释放资源,使用using可以自动调用dispose()

using (<类名> <变量名> = new <类名>()){……}
或者
<类名> <变量名> = new <类名>();
using(<变量名>){……}

继承

protected:派生类

public:派生类和外部

private:基类

基类成员可以是虚函数,这样方便派生类成员重写。因此虚拟成员不能私有。

抽象类:啥都没有,就指着继承的成员自己写,且必须写。

多态

应用:派生于同一类的不同对象上进行操作时。

接口的多态:可以以相同方式访问多个对象。调用结果取决于被赋予的变量。

IConsume 变量名;
变量名 = 牛;
或者
变量名 = 蔬菜;
变量名.EatFood();

变量的存储方式

值类型:直接存储。总是包含值。

引用类型:指向引用,引用指向存储。可以是NULL。

8.5练习答案

1.公共、通配符、松散的受保护的、私有

2.不对

3.不是

九.定义类

内部类的开放程度不能比基类大。

修饰符

指定接口

public class MyClass : MyBase,ItewoInterface,ImyInterface{
    //(基类),(接口)
}

定义接口

public(internal) interface IMyInterface(: IMyBaseInterface){
    //
}

为什么要定义一个构造函数而不是用默认的呢?

因为如果新建了其他构造函数,那么程序将默认使用这个构造函数,阻止前面无参的代码运行。因此,要显式的构造出抽早函数。

执行构造函数

:base(i),代表先执行有指定参数的构造函数。

类图

VS可以自动生成类图。

接口和抽象类使用上的区别:接口是相同功能、抽象类是相同成员

结构和类的区别:类是引用类型,如果直接a=b则是地址相等。结构是值类型。(C#中隐藏了指针)

浅度和深度复制:就是上面的问题,如果你随便复制了一下有可能会导致原本的值发生变化。

9.10练习答案

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

抽象类和静态类的区别是什么?

抽象类是可以被创建的。(它还需要子类帮他完善方法呢)

静态类是无法被创建的类。(固定的那种)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值