-
类
- class 关键字 interface 接口 internal 当前项目内部访问 abstract 抽象类型 sealed密封类型
- System.Object 所有的类都继承自System.Object
- 构造函数,析构函数
- 编译器自动添加,有需要可自己添加 (第10章)
- 构造函数的执行序列 为了实例化派生的类,必须实例化他的基类。 派生类--》基类--》基类的基类--》。。。--》System.Object(所有类的根)
- base 关键字指定 .NET 实例化过程中使用基类中有指定参数的构造函数。 也可以指定基类构造函数的字面值。例如子类默认构造函数调用基类非默认的构造函数。
- this关键字作为构造函数初始化器
- 类图
- 类显示为蓝色框,包含类的名称和类型
- 接口显示为绿色框,包含接口的名称和类型
- 继承用白色箭头表示
- 实现接口的类型有“棒棒糖”图标
- 抽象类显示为虚点外框,名称显示为斜体
- 密封类显示为粗黑外框
- 类库项目
- 接口和抽象类
- 相似:1.都包含可由派生类继承的成员 2.都不能实例化,但可以声明这些类型的变量
- 区别:1.派生类只能继承一个基类,即只能直接继承一个抽象类(但可以用一个继承链包含多个抽象类 2.类可以使用多个接口 (这两种效果是类似的)
- 抽象类可以拥有抽象成员(没有代码体,且必须在派生类中实现,否则派生类本身必须也是抽象的)和非抽象成员(拥有代码体,也可以是虚拟的,以便在派生类中重写) private, protected, internal,protected internal,
- 接口成员必须都在使用接口的类上实现--没有代码体 public
- 接口中不能包含字段,构造函数,析构函数,静态成员或常量。
- 结构类型
- 浅度和深度复制(11章)
- 静态类与非静态类
- 静态类
- 1:仅包含静态成员。
- 2:无法实例化。
- 3:是密封的。
- 4:不能包含实例构造函数。
- 静态成员
- 1:非静态类可以包含静态的方法、字段、属性或事件;
- 2:无论对一个类创建多少个实例,它的静态成员都只有一个副本(体现在在A实例改变了某个静态变量的值将影响所有的实例);
- 3:静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量;
- 4:静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;
- 5:虽然字段不能声明为 static const,但 const 字段的行为在本质上是静态的。这样的字段属于类,不属于类的实例。因此,可以同对待静态字段一样使用 ClassName.MemberName 表示法来访问 const 字段;
- 6:C# 不支持静态局部变量(在方法内部定义静态变量)。
- 非静态类
- 非静态类里即可有静态成员,也可以有非静态成员。
- 非静态里的静态方法可直接调用即 :<非静态 类名.静态方法 >
- 非静态里的非静态方法需要实例化后才能被调用,格式如下:<非静态类名 变量=new 非静态类名();>
-
相关阅读:
P1268 树的重量
P2419 [USACO08JAN]牛大赛Cow Contest
P1306 斐波那契公约数
P2905 [USACO08OPEN]农场危机Crisis on the Farm
P1081 开车旅行
P2906 [USACO08OPEN]牛的街区Cow Neighborhoods
P1550 [USACO08OCT]打井Watering Hole
P2746 [USACO5.3]校园网Network of Schools
P1613 跑路
【BZOJ4868】期末考试(整数三分)
-
原文地址:https://www.cnblogs.com/liuke-1264746554/p/10599225.html
Copyright © 2020-2023
润新知