C#面向对象笔记(一)

一、面向对象概述

1.1、面向对象的定义:对处理的事务进行分析和总结,抽象出事物的特性和行为,封装成相应的类,最后实例化成对象并进行操作。这种程序设计的思想成为面向对象。

1.2、面向对象的优势

易维护、易拓展、代码重用、灵活性好

二、类和对象

2.2、类的概念:类是对事物的一种抽象定义,类是具有共同特征和行为的一类事物的统称。

2.2、对象的概念:对象是类的实例,拥有具体特征和行为之后的类就成为了对象。对象是独一无二的具体个体,用来描述现实世界的某个事物。

类和对象的关系:

(1)类是对象的抽象,对象是类的实例化

(2)先有类,才有对象

2.3、定义类的语法:C#是面向对象的语言,其基本的组成单位就是类。

[访问修饰符] class 类名

{

        类的内部成员;

}

语法说明:

(1)访问修饰符有:public、protected、internal、protected internal、private;

(2)类的内部成员有:字段、属性、方法、常量、事件和索引器等,类的特征通常用字段描述,类的行为使用方法描述。

(3)类名命名规则:首字母大写,不能使用关键字,使用有意义的英文单词进行命名;

2.4定义字段的语法:

[访问修饰符] class 类名

{

        //定义字段语法

        访问修饰符 数据类型 字段名;

}

2.5定义方法的语法

[访问修饰符] class 类名

{

        //定义方法语法

        访问修饰符 返回值类型 方法名(形参列表)

        {

                方法体;

        }

}

方法名命名规则:首字母大写,不能使用关键字,使用有意义的英文单词进行命名;多个单词组合而成时,每个单词首字母大写。

2.6补充知识:float、double、decimal的区别

decimal的运用场景:适合财务和货币运算。

三、对象的实例化及访问类的成员

3.1、实例化对象语法:

类名        对象名=new        类名();

3.2、访问类字段语法:

对象名.字段名=值         --给类的字段赋值

对象名.字段名;       --访问类的字段

3.3、访问类的方法语法;

对象名.方法名;        --调用类的方法

四、类和对象的应用

4.1、综合项目实现思路:

(1)类:封装属性及方法;

(2)在Program类中封装增删改查方法;

(3)Program类Main方法中使用while或do-while循环打印主菜单;(主菜单可以单独封装成一个方法)

(4)根据用户不同选择,使用switch或else-if分支调用对应的类方法实现功能。

集合类

一、集合概述

1.1、数组的缺陷:

        (1)数组长度固定,无法动态添加元素;

        (2)数组元素类型必须相同;

1.2、集合的主要特征:集合类,简称“集合”,是常用数据结构。被定义在System.Collections命名空间中,有以下特征:

(1)动态地改变大小;

(2)可存储任意类型的对象(object);

(3)提供一系列操作集合中对象的方法

1.3、常用集合类

ArrayList(数组列表):可变长度的数组

Hashtable(字典):键值对存取

Queue(队列):先进先出

Stack(栈):先进后出

SortedList(排序列表)

1.4:常用集合接口:

IEnumerable、ICollection、IList、IDictionary

二、列表集合ArrayList

2.1、ArrayList概念:属于集合类中的一种,类似于数组,因其大小可根据需要动态地改变,故也可称为动态数组。

使用动态数组需要注意以下事项:

(1)需要导入命名空间System.Collections;

(2)存储的元素都当作对象(objec),访问对象时,需要把他们的数据类型转换回存储前的类型。

2.3、ArrayList使用

//文件顶部导入命名空间System.Collections

using System.Collections

//创建ArrayList

ArrayList 动态数组名=new ArrayList([数组长度]);

//添加ArrayList集合元素

动态数组名.Add(集合元素);

//访问ArrayList集合元素

动态数组名[下标] as 数组类型

2.3、ArrayList的常用属性:

 2.4、ArrayList的常用方法:

 三、字典集合Hashtable

3.1、ArrayList的缺陷:查询条件是字符串类型(不是索引)时,必须遍历集合才能得到结果,操作较复杂。

3.2、Hashtable的概念:是System.Collections命名空间提供的一个处理key/value(键/值)对集合容器。key通常用于快速查找,value用于存储对应于key的值。

使用字典集合需要注意以下事项:

(1)需要导入命名空间system.Collections;

(2)key区分大小写;

(3)存储的元素都当作对象(object),访问对象时,需要把他们的数据类型转换回存储前的类型。

3.3、Hashtable的使用

//文件顶部导入命名空间System.Collections

using System.Collections

//创建Hashtable

Hashtable 字典集合名=new Hashtable();

//添加Hashtable集合元素

字典集合名[key] as 数据类型

3.4、Hashtable的常用属性

3.5、Hashtable的常用方法:

*补充知识:

装箱和拆箱

(1)装箱:指将一个值类型隐式地转换成一个引用类型;

(2)拆箱:指将一个引用类型显示转换成一个值类型;

(3)C#的引用类型包括:数组、委托、接口、Object、字符串、用户定义的类;

(4)C#的值类型包括:数值类型、结构体、bool、枚举、可空类型、用户定义的结构体;

泛型

一、泛型概述

1.1、泛型的概念:泛型是C#2.0推出的新语法,在命名空间System.Collections.Generic,包含了几个新的机遇泛型集合类,有以下优势

(1)极大提高代码的重用性:不需要对参数类型不同代码相同(仅类型参数不同)的代码重写;

(2)高效性:避免装箱和拆箱操作降低性能;

(3)类型安全性:定义允许使用的数据类型,在编译时检测类型错误,及早发现错误。

1.2、泛型分离:

 1.3、泛型类的使用:

//文件顶部导入命名空间System.Collections.Generic

using System.Collections.Generic

//定义泛型类

访问修饰符 class 类型<T>

{

        //类成员

}

//实例化泛型类对象

类名<数据类型>        对象名=new        类名<数据类型>([实例列表])

//访问泛型类成员

对象名.属性名;

对象名.方法名([实参列表]);

*语法说明:

(1)泛型类在定义时,只需使用<T>泛指所有数据类型;

(2)在实例化对象时,需要确定指定的数据类型。

1.4、泛型方法的使用:

//文件顶部导入命名空间System.Collections.Generic

using System.Collections.Generic

//定义泛型方法

访问修饰符 返回值数据类型 方法名<T>([形参列表])

{

        //方法体

}

//调用方法

方法名<数据类型>([实参列表])

*语法说明:

        (1)泛型方法在定义时,只需使用<T>泛指所有参数类型;

        (2)在调用时,需要确定指定的数据类型的参数。

二、泛型集合 List<T>

2.1、List<T>概念:

与ArrayList的使用方式完全一样,区别在于:

(1)List<T>定义时必须指定集合中存储数据的类型,增强了类型的安全性

(2)List<T>不用装箱和拆箱

2.2、List<T>使用:

//文件顶部导入命名空间System.Collections.Generic

using System.Collections.Generic

//创建List<T>

List<数据类型> 集合名=new List<数据类型>();

//添加List<T>集合元素

集合名.Add(集合元素);

//访问List<T>集合元素

foreach(数据类型 item in 集合名)

{

        item;

}

2.3、List<T>的常用属性:

 2.4、List<T>的常用方法:

 三、泛型字典集合Dictionary<K,V>

3.1、Dictionary<K,V>概念:

与Hashtable集合的使用方式大体一样,区别在于:

(1)Dictionary<K,V>定义时必须指定key和value的类型,增强了类型的安全性;

(2)Dictionary<K,V>不用装箱和拆箱。

3.2、Dictionary<K,V>的使用:

//文件顶部导入命名空间System.Collections.Generic

using System.Collection.Generic

//创建Dictionary<K,V>

Dictionary<key数据类型,value数据类型>        字典集合名=new        Dictionary<key数据类型,value数据类型>();

//添加Dictionary<K,V>集合元素

字典集合名.Add(key,value);

//访问Dictionary<K,V>集合元素

foreach(key 数据类型 key in 字典集合名.keys)

{

        字典集合名[key];

}

3.3、Dictionary<K,V>的常用属性:

 3.4、Dictionary<K,V>的常用方法:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值