C#面向对象程序设计

C#面向对象设计

第一章

类是对象的抽象化,对象是类的实例化。

静态类(只能使用静态字段、方法)(static)
使用:类.方法(字段)

普通类(皆可)
使用:创建对象,对象.方法(字段)

普通类结构体(struct)的区别:
引用类型,值类型;
可赋初始值,不可;
可继承,不可;
默认private,默认public;

第二章

Ctrl+R+E 封装字段(字段变为属性)
(get:可访问性;set:可赋值)
作用:设定区间

重载 (同名不同参)(返回类型不能作为判断条件)
(同类)
作用:便于调用用途相近方法

构造函数 (同类名 无返回类型)
作用:为成员赋初始值

第三章

ArrayList类(有序集合)(类似一维数组)
using System.Collections(集合的命名空间)

转换类型

  1. as转换 转换失败返回null 转换方法:变量名= 原变量名 as 转换类型
  2. ()转换 转换失败报错 转换方法:变量名=(转换类型)原变量名

属性:
1容量:Capacity
2实际个数:Count
Ps:容量<实际个数 会自动增长至原容量的一倍
方法:(创建对象.方法)
1Add(对象)方法 逐个依次添加
2Insert(索引,对象)方法 插队
3Remove(对象)方法 移除
4RemoveAt(索引位置)方法 移除
5Clear()方法 清空所有元素
6Sort()方法 元素排序
7Reverse() 元素顺序反转
8TrimToSize() 使容量数=实际个数

HashTable类(无序集合)(类似二维数组)

属性:
1Keys 获取键的信息
2Values 获取值的信息
3Count 获取键值对的数目
方法:
1Add(键,值)
2Remove(指定键)
3Clear()
4ContainsKey(键) 是否存在指定键
5ContainsValues(值) 是否存在指定值
对象[键]=值

第四章

泛型集合List(ArrayList升级版)
List<允许在泛型集合当中出现的指定类型> 变量名= new List<同上>
PS:不会默认转化为object类型;使用方式同ArrayList

泛型集合Dictionary(Hashtable升级版)
Dictionary<类型,类型>

第六章

继承:
子类:父类
PS:子类(派生类)拥有父类可被继承的字段、属性、方法。消除了代码冗余,提高了代码的重用性和扩展性,灵活性。

c#中子类会先调用父类的无参构造函数再调用自身的构造函数(若父类没有构造函数则提示错误)
this(成员(没有成员默认访问构造函数)):访问本类的成员(以及对应的构造函数)
base(成员):访问父类的成员(以及对应的构造函数)
is a实例化类(父类引用指向子类对象)(把子类看成父类):父类 变量名=new 子类();
object类(所有类的基类)(没有父类自动继承此类)

访问修饰符:
public:公有的,访问不受限制
private:私有的,只能本类访问
protected(★):受保护的,只能本类及子类访问
internal(♡):内部的,只限于本项目内成员访问
protected internal:内部受保护的,只限于本项目或子类访问

第七章

多态:隐藏,重写

  1. 隐藏:基类使用virtual定义虚方法,子类使用new关键字隐藏(第一步可省,不过编译器会发出警告)
  2. 重写(子类访问范围>父类访问范围):基类使用virtual定义虚方法,子类使用override重写

密封类(不许虚方法):sealed(类无法被继承)
密封方法:sealed只能与override一起使用(方法无法再次被重写)

第八章

抽象类:abstract
抽象方法:abstract;抽象类中;莫得方法体;子类重写
接口:interface(没有访问修饰符)(未实现的方法(没有方法体))

第十章

在这里插入图片描述

  • 9
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值