深入.NET平台和C#编程
第一章: 深入.NET框架
https://www.sodocs.net/doc/0f10887046.html,框架的主要内容有CLR,框架库类
2.CLR是所有.NET应用程序运行时的环境,是所有.NET应用
要使用的编程基础。
3.CLR中有两个组件,CTS是通用类型系统;CLS是公共语言规范
https://www.sodocs.net/doc/0f10887046.html,FRAMEWORK包括两部分,一个是CLR,一个是FCL
CLR确保语言之间的兼容;
FCL提供的类文件,确保开发的灵活性;
第二章: 深入C#数据类型
1.类和对象:由对象归纳为类,是归纳对象的过程.
在类的基础上,将状态和行为实体化为对象的过程称为实例化
2.封装的好处:
a.保证数据的安全性
b.提供清晰的对外接口
c.类内部实现可以任意修改,不影响其他类
3.值类型和引用类型
值类型:
基本数据类型:
整型:int
长整型:long
浮点型:froat,double
字符型:char
布尔型:bool
枚举类型:
枚举型:enum
结构类型:
结构型:stract
引用类型:
类:
基类:system,object
字符串:string
自定义类:class
接口:
接口:interface
数组:
数组:int[],string[]
特点:引用类型作为参数传递,其值的修改将会保留
以引用方式(ref)传递值类型的数据,其值的修改也将会保留直接传递值类型数据,对它的修改不会被保留
4.结构:
定义:访问修饰符struct 结构名
{
结构体
}
特点:
结构中可以有字段,也可以有方法
定义时,结构中的字段不能被赋初值
结构的的使用注意事项:
可以不用New,直接定义结构的对象即可
声明结构的对象后,必须给结构的成员赋初值
装箱与拆箱:用于值类型和引用类型的转换。
值类型————>引用类型(装箱)
(拆箱)值类型<————引用类型
5.静态方法:
静态(static)成员(字段和方法)不是面向对象的,静态成员描述的事物类似与太阳等公共事物,在以后的编程中,如果一个字段和方法,或者类在不同的地方被频繁的使用的话,就可以把它声明为静态的
第三章:使用集合组织相关数据
1. ArrayList
小结,arraylist的优缺点
优点:相对于数组,长度是可以动态调整的
缺点:数组里面只能放一种类型的数据,arraylist可以放多种类型数据
这样做坏处,在取集合中数据时经常须要强转
arraylist 只能通过下标来访问里面的元素
2. Hashtable:
Hashtabl优缺点:
与arrayli相比:相对arraylist,hashtable可以通过key值来遍历value值,也就是说可以通过指定值
去查找集合中的对象,这一点比arraylist只能通下标要好的多
arraylist速度快但不方便,hashtable方便但速度慢(相对来讲)
共同的缺点是:
无论什么类型的数据,添加到他们两个集合中以后就变成了object(装箱)因此在出来的时侯经常须要强转(拆箱)
3.泛型
小结
list
最大的好处,不须要强转,避免了频繁装箱与拆箱
因此性能和安全方法比arraylist要好
缺点之一:跟arraylist一样只能通过下标来取某个元素
用dictionary
Dictionary
最大的好处,不须要强转,避免了频繁装箱与拆箱
因此性能和安全方法比hashtable要好
第四章:深入类的方法
1.构造函数:
a.类的构造函数:类的构造函数是类的一种特殊方法。有以下特点:
它的方法名与类名相同,没有返回类型,主要完成对象的初始化工作。
b.无参构造函数:默认情况下,系统会给类分配一个无参数的构造函数,并没有方法体。我们可以自己编写无参构造函数,在方法体中对类进行赋值。
c.带参构造函数:参数列表一般给类的属性赋值。带参构造函数的灵活性更好。
2.方法重载:指方法名相同,而参数类型与参数个数不同,在同一个类中,构造函数和普通方法都可以重载。
好处:方法重载不但能够避免命名的麻烦,还使调用者不必对参数类型做判断而直接调用。
3.对象交互:面向对象的程序中,对象通过公开方法和属性完成于其他对象的交互。
第六章初始继承和多态
1.继承:
继承必须符合is a的关系,被继承的类称为父类或者基类,继承其他类的类称为子类或者派生类。
继承的特点:
a.继承必须符合is a的关系,被继承的类为父类或者基类,继承其他类的类称为子类或者派生类
b.继承机制很好地解决了代码的复用的问题
c.子类继承父类的成员,并且可以拥有自己特有的成员
d.继承具有传递性,如果class A:B,classB:C,则A也可以访问C的成员
2.Public private 和protected 区别:
修饰符类内部子类其他类
Public 可以可以可以
Protrcted 可以可以不可以
Private 可以不可以不可以
3.多态
多态是指两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同响应的方式。
方法的重载也是实现多态性的一种方式,虚函数实现多态的方法分布在多个子类中,方法重载也称为方法的多态。实现方法的重写,用virtual关键字定义为虚方法。在子类中用override关键字修饰,就实现了对父类方法的重写。
第七章深入理解多态
1.里氏替换概述
子类对象可以赋给父类变量,也可以说子类可以替换父类并且出现在父类能够出现的任何地方,且程序的行为不会发生变化,但是反过来,父类对象时不能替换子类对象的。
2.抽象方法
语法:
访问修饰符 abstract 返回类型方法名 ();
抽象类提供抽象方法
语法:
访问修饰符 abstract class 类名;
3. is和as区别:
If(empls[i] is(as) SE)
{
}
is用于检查对象和指定的类型是否兼容,as主要转换对象指定的类型。
3. 虚方法与抽象方法的区别:
虚方法抽象方法
用virtual修饰用abstract修饰
要有方法体,哪怕是一个分号不允许有方法体
可以被子类override 必须被子类override
除了密封类外都可以写只能在抽象类中写
第八章面向对象高级应用
1.设计模式:
设计模式是人们在长期的软件开发中对一些经验的总结,是某些特定问题经过实践检验的特定的解决方法。
2.简单工厂和单例:
a.简单工厂设计模式的主要功能是实现创建所有实例的内部逻辑。由工厂类负责创建具体的对象,客户只需要知道工厂和产品的父类即可。简单工厂返回的数据类型都是父类类型,工厂方法一般都是静态的。
b.单例设计模式确保一个类只有一个实例,并且提供一个全局访问点。类的构造函数可以是私有的,实现了单例模式的类通常采用私有构造函数确保类不在类的外部被实例化。
第十章可扩展标记性语言XML