方法
变量作用域
方法重载:
Ref :引用传参, 侧重于在方法中一定要修改参数,传入方法前必须赋值
Out:侧重于输出,方法返回前 参数使用前 必须赋值
Params: 可变参数,只能修饰数组类型,只能在方法列表的最后.
如果没有给可变参数赋值,那么可变参数会自动初始化长度为0.
方法递归(循环): 方法自己调用自己, 在方法中一定要有跳出条件.
面向对象三大特性: 封装 继承 多态
分析对象--名词提炼法: 提炼 类名.
类与对象的关系: 类是抽象的设计图纸, 对象是按照图纸建造的房子.
类与对象的区别:
类是抽象的, 对象是具体的
对象是按照类来创建的.
类的定义:public class 类名{ }
类的实例化: 类名 p= new 类名();
New关键字做的事情: 开辟堆空间..
属性:本质就是 set get方法. 作用:为对字段的操作 设置约束.防止非法值的设置.
构造函数作用:初始化类的内部成员字段
1.当类里没有写任何构造函数,那么CLR会再调用时自动添加一个无参数的构造函数.
2.如果类内有任意一个构造函数,那么就不会自动添加.
3.构造函数有重载
类图
析构函数: GC来销毁对象时 调用对象的析构函数. 主要用于程序员 释放对象所占资源
命名空间, "C#中的虚拟文件夹",作用: 避免项目中 类重名问题
字符串处理
对象的引用
.net 值类型和引用类型
值类型:int bool 结构体 枚举
引用类型: class delegate, 接口 数组,string(特殊的引用类型)
为什么要继承: 代码复用, 更重要的是 可以帮我们实现多态.
继承关系侧重于 一个 族群的关系
继承的使用:
显示调用父类构造函数: :base()
访问修饰符:extern(供外部访问的)
里氏替换原则:子类可以替换父类对象 --> 父类 p=new 子类();
多态: 一个对象,多种形态.
一个父类对象里有虚方法或抽象方法, 那么子类继承后 重写这些方法,
当出现 父类 p=new 子类();时, p.父类虚方法();//此时真正执行的是子类里重写的方法
抽象方法: 只能定义在抽象类中, 抽象方法不能有方法体.
抽象类: 可以定义抽象方法, -- 不能被实例化
也可以定义非抽象方法.---
接口: 本质--特殊的抽象类.
接口的作用:完完全全的定义规则 ---但是,真正的实现还是依靠 多态来完成.
IFlyable fly=new Fly子类();
面向接口编程:不关心接口的具体实现,而直接通过调用接口方法来完成编码
静态方法:
1.通过 类名.静态方法 静态成员直接属于类的
2.在第一次调用时才加载进 静态成员表中
实例方法: 实例成员直接属于对象 (new)
1.对象名.实例方法()来访问.
2.在类被第一次访问的时候,方法就已经加载到 类的方法表中
3.注意: 每个实例对象里都保存了一个指针,指向该类的实例方法表
类的修饰符 public internal
ArrayList和Hashtable
索引器:
装箱与拆箱:浪费资源;
装箱:将值类型转换成引用类型
茶香:将引用类型转换值类型
泛型集合
简单的文件读写: FIle FileStream, 文本类型--StreamReader,StreamWriter
文件流 FileStream
二进制文件读写
序列化: 使用二进制格式化器
目录/文件管理: Directory / Path