C#OOP

深入.NET平台和C#编程 总结

第一章

.NET框架两个重要组件:公共语言进行时(CLR)框架类库(FCL)。
C#编译的原理:
(c#)(VB.NET)》MSIL代码》即时编译器(JIT)》平台专用语言》执行代码。
封装
是面向对象三大特征之一
一个不可分割的实体
隐藏内部的细节
通过访问修饰符授权
封装的好处
保证数据安全性
提供清晰的对外接口
类内部实现可以任意修改,不影响其他类

第二章

值类型转换为引用类型成为装箱,反之称为拆箱。
方法的参数传递方式:
1.值方式
传递值类型参数,其值的修改不会被保留
传递引用类型参数,其值的修改将会保留
2.引用方式:
传递引用类型或值类型参数,其值的修改都会保留。
结构是值类型数据,使用时可以不用new关键字

第三章

集合:
ArrayList集合可以动态维护,访问元素时需要类型转换。
hashtable:
元素都是以键/值对的形式存在
不能通过索引访问元素,只能通过Key访问Value
泛型的优势
提供了更好的类型安全性
性能高,避免繁琐的装箱拆箱
----------------------------------
泛型集合可约束它所存储的对象的类型.
访问泛型集合中的元素无须进行类型转换.
泛型的重要性
实现代码重用,未来的主流技术
性能高,避免繁琐的装箱拆箱
提供了更好的类型安全性
CLR支持泛型

第四章

构造函数
通常与类名相同,它不声明返回值
一般情况下,是public 类型的
方法重载
是指方法名相同,而参数类型和参数个数不同
在同一个类中,构造函数和普通方法都可重载
对象交互
对象通过public方法和属性实现与其他对象的交互
方法的参数以及方法的返回值都是对象间相互传递的消息

第五章

泛型集合
Dictionary<K,V>:根据Hash计算Key所存放的虚拟内存地址,再按地址找到对应的Value
List:按照插入顺序保存数据
DataGridView
DataGridView控件绑定List集合元素:
当List中数据改变时,要将DataGridView的DataSource设置为new List(),再将改变后的List赋给DataGridView的DataSource
对DataGridView中List添加/删除数据时,先要把List转换成BindingList,再执行数据源绑定语句;否则会出现意想不到的错误

第六章初始继承和多态

理解继承的概念
熟练使用继承建立的父类和子类
理解多态的概念
会重写虚方法实现多态
protected访问修饰符只允许继承他的子类访问。
public 类内部可以 子类可以 其他类可以。
private 类内部可以 子类不可以 其他类不可以。
protected 类内部可以 子类可以 其他类不可以。

知识点
1、公共属性在父类构造函数中初始化代码简洁沉余少。
2、调用父类构造函数传递参数不需要再次指定参数的数据类型。
3、调用父类构造函数传递参数,参数的变量名必须与父类构造
函数中的参数一致。
4、c#中子类不能继承多个父类。
重点
1、父类中定义的虚方法并非必须被子类重写,在父类中可给出
虚方法的默认实现。如果子类不重写父类的虚方法,依然执
行父类的默认实现;反之,则执行子类重写后的方法。

2、方法重载也是实现多态性的一种方式。只不过重载的方
法都在同一个类里面,而用虚方法实现多态的方法分散在有
继承关系的多个类中。

继承和多态

继承
是指根据一-个现有类创建- -个新类的过程
目的是实现代码重用
被继承的类称为父类或者基类
继承其他类的类称为子类或者派生类
子类与父类之间必须符合is a的关系
base关键字可以用于调用父类的属性、方法和构造函数

具有***两大***特性
单根性:是指子类只能继承-个父类,不能同时继
承多个父类。
.传递性:子类是可以继承父类的特性,同时子类也可以作为其他类的父类。

多态
指同一操作作用于不同的对象,可以有不同的解释,产生不
同的执行结果,用virtual关键字修饰父类方法。
可以使用虚方法实现多态。
用override关键字修饰子类中重写的虚方法。

第七章深入理解多态

理解里氏替换原则
会使用父类类型作为参数
理解抽象类和抽象方法
理解虚方法和抽象方法的区别

知识点
1、里氏替换原则(lsp)
在一个软件系统中,子类可以替换所有使用的父类
对象,,且程序行为没有变化。
2、用as操作符进行类型转换不会产生异常,
但并不表示不需要进行异常处理。
3、有抽象方法的类必然是抽象类,但是,抽象类
中的方法并不一定都是抽象方法。
{抽象类用来列举一个类所需要的行为。
{抽象类不明确提供具体实现方法
{抽象类必须由其子类实现他的抽象方法
(除非子类也具有抽象性)。
4、抽象方法和抽象类
{抽象类通常代表一个抽象的概念
{抽象方法约束子类对象的行为
5、虚方法
具体类的默认实现,提供其子类扩展实现方式。

抽象方法和虚方法

抽象方法{用abstract修饰不允许有方法体
必须被子类override 只能在抽象类中

虚方法{用virtual修饰要有方法体可以被子类override
除了密封类都可以写
面向对象的三大特征
封装
隐藏内部实现,稳定外部接口
继承
子类继承父类成员,实现代码复用
多态
不同子类对同一个消息作出不同的反应

oop的多态性

里氏替换原则
1、子类对象可以代替父类对象
2、但反过来,父类对象不能代替子类
对象
抽象方法
1、是一个未实现的方法
2、用abstract关键字修饰
1、含有抽象方法的类必然是抽象类
2、使用抽象方法和虚方法都可以实现多态性
3、面向对象的三大特性
封装
继承
多态
4、is操作符用于检查对象和指定的类型是否兼容
as操作符用于两个对象之间的类型转换

第八章可扩展标记语言xml

会编写xml文件
会读取xml文件的元素
会使用treeview创建动态树状图

知识点
1、xmldocument对象表示xml整个文件
属性和方法
documentelement属性 获取文件
childnodes属性 获取节点的所有子节点
voidload方法 加载整个xml的结构
2、xml node对象表示xml文件的单个节点
属性和方法
innertext属性 当前节点的值
name属性 当前节点的名字
childnodes属性 当前节点的所有子节点

3、treeview控件重要属性和事件
nodes treeview控件中的所有树节点
selectednode 当前treeview控件中选定的
树节点,如果当前没有选定树节点,返回值为null
afterselect 选中树节点之后发生的

4、节点对象(treenode)属性
text 节点显示文本
index 节点在所在集合中的索引
parent 节点的父节点
level 节点在树状菜单中的层次
tag 节点值
nodes 节点的所有下一级子节点

xml语言+treeview控件
xml
1.称为可扩展标记性语言,主要用于描述数据
2.使用XmlDocument对象读取一个XML文档XmINode对象表示XML节点
treeview控件
1.用于显示具有层次结构的信息
主要属性有Nodes和SelectedNode
2.节点对象TreeNode属性
{Text:设置节点的文字描述
{Tag:设置与节点相关的信息

第九章文件操作

掌握文本文件的读写
会进行文件和文件夹操作

知识点
读写一个文件的步骤
1.创建一个文件流
2.创建相应的读写器
3.执行读写操作
4.关闭读写器
5.关闭文件流

1、bool Exists(string path)
用于检查指定文件是否存在,该方法返回-个布尔值
2、void Copy(stringsourceFileName,string destFileName)
将指定路径的源文件中的内容复制到目标文
件中,如果目标文件不存在,则在指定路径
中新建一一个文件
3、void Move (stringsourceFileName,
将指定文件移动到一个新的路径
4、string destFileName)void Delete(string path)
删除指定的文件,如果指定的文件不存在,则不引发异常
5、fildlnfo类 应用场景:
由于File类的静态方法在使用时都会进行安全检查,所以如果想要多次使用某个文件对象,可以考虑使用FileInfo类相应的实例方法,因为并不总是需要安全检查。
6、bool Exists(string path)
用于检查指定文件夹在磁盘.上是否存在
7、void Move(stringsourceDirName,string destDirName)
用于将文件或目录及其内容移到新位置
8、void Delete(string path,bool recursive)
删除指定目录,如果bool指定true,则删除
子目录中的所有目录内容
9、void Delete(string path)
从指定路径删除空目录

静态方法和实例方法
静态方法
static关键字
使用类名调用
可以访问静态成员
不可以直接访问实例成员
调用前初始化
实例方法
不需要static关键字
使用实例对象调用
可以访问静态成员
可以直接访问实例成员,
实例化对象时初始化
静态类和非静态类
静态类
用static修饰
只包含静态成员
不可以包含实例成员
使用类名调用静态成员
不能被实例化
不能包含实例构造函数
非静态类
不用static修饰
可以包含静态成员
可以包含实例成员
使用实例对象调用非静态成员
可以被实例化
包含实例构造函数

文件操作
读写文件的五个步骤
1.创建文件流
2.创建读写器
3.读写文件
4.关闭读写器
5.关闭文件流
File类用于对文件进行操作
复制 移动 删除
Directory类,用于对文件夹操作
File类和Directory类都是静态类
静态类只包含静态成员,非静态类可以包含静态成.员

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值