使用的时候一个一个依次调用就可以了

时间:2022-06-16 04:57:08

C#根本入门 五 递归

递归挪用:一个要领直接或间接地挪用了它自己,就称为要领的递归挪用。

递归要领:在要领体内挪用该要领自己。

递归示例

public long Fib(int n) { if(n==0||n==1) return n; return Fib(k-2)+Fib(k-1); }

操练:操作递归计算1+2+3...+100的值。

static int Fun(int n){ if(n==1) return n; return n+Fun(n-1); } 结构要领和析构要领 结构要领

结构函数用来初始化东西。好比要成立一个铅笔的东西,那么可以用结构函数来控制它的初始状态,如长度、宽度、颜色等。

结构要领必需跟类重名,结构要领没有返回值,但可以有多个重载。

结构要领的素质是一个结构器,,是为了类的实例化而孕育产生的,结构要领是一种特殊的要领,只能在初始化的时候被执行,外部不能挪用。

结构要领可以不写,系统会默认为你的类添加一个无参结构要领。

如果将结构函数设为private,则不能被外部实例化。

public class Student { public int age; public string name; public int grade; public Student(int a,string n, int g){ age = a; name = n; grade = g; } } class MainClass { public static void Main(string[] args) { Student student = new Student(21, "zxh", 100); Console.WriteLine(student.age+student.name+student.grade); } } 析构要领

析构要领用于析构类的实例,用于释放内存空间。

class Car { ~Car() { //cleanup statements } }

不能在布局中界说析构要领,只能对类使用析构要领,一个类只能有一个析构要领,无法担任或重载,无法挪用析构要领,,只能自动挪用,析构要领既没有修饰符,也没有参数。

面向东西措施设计

面向过程:面向过程就是分析出解决问题所需要的法式,然后用函数把这些法式一步一步实现,使用的时候一个一个依次挪用就可以了。

面向东西:把组成问题事务分化成各个东西,成立东西的目的不是为了完成一个法式,而是为了描述某个事物在整个解决问题的法式中的行为。

面向东西特性:封装、担任、多态。

OOP(面向东西编程)到达软件工程的三个主要方针:重用性、灵活性和扩展性。

封装

封装是实现面向东西措施设计的第一步,封装就是将数据或函数等调集在一个个的单元中(称之为类)。

封装的意义在于掩护或者防备代码被我们无意中粉碎。

封装就是对类成员的再次包装。

担任

担任用于创建可重用、扩展和改削在其他类中界说的行为的新类,其成员被担任的类称为“基类”,担任这些成员的类称为“派生类”,派生类只能有一个直接基类,但是担任是可通报的,如果ClassB派生出ClassC,ClassA派生出ClassB,则ClassC会担任B和A中声明的成员。

基类有的,派生类都有,派生类有的,基类可能没有,即:派生类可以赋值给基类,而基类不能赋值给派生类。public class Student:Person{} Student担任Person。

public class Person { public void Eat() { Console.WriteLine("人都要用饭"); } } public class Student:Person { public void Learn() { Console.WriteLine("学生都要学习"); } } public class Senior : Student { public new void Learn(){//要领替换 Console.WriteLine("高中生要学的更多"); } public void University() { Console.WriteLine("高中生要考大学"); } } class MainClass { public static void Main(string[] args) { Senior sen = new Senior(); sen.Learn(); sen.University(); sen.Eat(); } } > 打印功效: > 高中生要学的更多 > 高中生要考大学 > 人都要用饭 多态

当派生类从基类担任时,它会获得基类的所有要领、字段、属性和事件,派生类可以选择:

担任最接近的基类要领而不重写它

重写基类中的虚拟成员

界说隐藏基类实现的成员的新非虚实现,凡是我们称这为“要领替换”。

虚函数:用virtual修饰的要领成为虚要领;

重写:用override修饰的是要领重写;

密封类:sealed修饰符,修饰类为密封的,不成被担任不成被重写,派生类可以通过sealed来遏制担任,内部的要领可以通过sealed来阻止被重写。

静态类被默认为密封类,所以静态类不能被担任。