一、几个基本概念的理解:
C# 是一种强类型、面向对象的编程语言,其语法受到了C++和Java的强烈影响
算法实质:计算机程序的自然语言描述
数据结构:数组、栈、队列、链表、树、图
项目结构:
解决方法(多个项目)——项目(多个自身类文件或引用其他项目类文件)——命名空间(功能模块、类、结构体的划分)——类文件(多个类、结构体、枚举)
变量的使用范围:变量的有效范围仅限于他所在的括号内,并且可以作用与子孙级别,故在类中定义的字段,只能在类中直接使用名称使用
面向对象语言的特性:封装、继承、多态
封装:为用户提供对象和属性的接口
继承:类派生出的类具有全部派生基础类的属性和行为
多态:派生类具有的除父类属性和方法外各自不同的属性和方法
属性:一般用于对字段的封装,但并非一定要基于字段,可以接受访问与修改,但 不一定都要提供
获取:get,必须return一个和属性类型相符的值,一般是字段
修改:set,一般用于可以对字段赋值,但是也可以不作任何修改,set中使用value
来代表传进来的需要修改的值
private int name;
public int Name
{
get
{
return name;
}
set
{
name=value;
}
}
二、C#的程序的基本结构
首先介绍一下C#程序相对于C语言程序的基本结构,也就是面向对象的不同于过程程序的一些地方
主要的介绍放在图片上面了
三、具体的面向对象名词
1面向对象的操作
主要对属性和方法的操作
2类与对象的关系
类:创建对象所依赖的规范
数据成员(字段,常量和变量)+函数成员(方法、属性、构造函数和析构函数)+嵌套类型
类的静态成员
Get访问器:
访问、获取属性的值
需要用return语句来返回
Set访问器:
给属性赋值
Value隐式参数赋值
对象:类的实例化的结果
构造函数:创建对象并进行初始化
默认构造函数:定义类时的默认函数,不带参数
有参构造函数:有参数
静态构造函数:不带任何参数,不能设置访问修饰符,不能访问实例化成员,只执行一次,静态字段和属性
析构函数:释放对象资源,类名前加前缀~来命名、自动调用
权限修饰符:(类public,internal、类的成员变量、成员方法的访问)
方法:(定义类的可执行操作、和类相关联的动作)
实例并且初始化对象,构造函数、析构函数、具体方法、修饰符
根据所要构造的对象来划分:无参构造函数、有参构造函数
3方法中的四种参数:
值参数 实参与形参之间按值传递,对值类型的形参修饰不改变实参
Ref数 使形参按引用传递,对形参所做任何改变都反映在实参中,传递前要对参数进行赋值
Out参数 参数通过引用传递,传递前可以不对参数进行赋值
Params参数 对多个相同类型的参数进行定义时使用
值类型(每个变量都是独立的纯在,a=b,即把b的值赋值给a)(结构体)
改变其中的任何一个仅仅改变当前的变量的值,不改变其他变量的值
引用类型(不同的变量指向同一个地址)(类、数组)
改变其中的任何一个,则所有指向该地址的变量均发生改变
方法重载:方法名相同、参数数据类型、个数、顺序不相同,相当于重载不同的方法
4继承(类与类之间的关系,继承数据结构)
只支持单重继承,不支持多重继承,一次只允许继承一个类,不能继承多个类
子类的可访问性一定要低于父类的可访问性
构造函数与继承方法
基类定义构造函数与前面相似
派生类,引用基类的构造函数,在定义时使用关键字base传递给基类
成员继承:(字段、属性、方法)、修饰符
派生类可以使用对象.成员的方式直接使用基类中非private的成员
基类和派生类一般不同名,如果同名时,直接使用new共存,用this和base来区分
5多态(派生类对于基类的重写)
virtual需方法+override重写
虚方法突出基类与派生类的不同之处,只适用于普通方法,不适用于构造方法
当要求派生类与基类的方法相同时,无需重写,直接使用基类的方法
重写之后用base关键字还可以对基类中的方法使用
接口的定义
只能定义结构,具备某方法的对象,具有对应的属性
如果基类中包含了同名、同参数、同返回值类型的方法,不需要再次实现
显示使用接口时,实现的额方法只能是private
四、窗体
开发程序步骤:
创建项目、界面设计、设置属性、编写程序代码、保存项目、程序运行
窗体
实质上是一个对象,它创建相当于实例化一个对象
属性:图标、标题、位置、背景等
隐藏窗体标题、控制窗体显示位置、修改窗体大小、设置窗体背景照片、显示窗体、隐藏窗体
窗体的事件:
控件 (涉及到对于控件的一些操作需要进行具体的编程训练实现)
五、总结
总结来说,本文详细介绍了面向对象编程在C#中的实现,包括类的定义、对象的实例化、以及继承和多态的具体应用,同时也涉及了C#特定的编程环境设置和窗体控件的操作。这为理解面向对象编程提供了一个实际和详细的框架,特别是在使用C#语言进行软件开发时的应用。
六、c#语言语法罗列
1. 基本语法结构
- 命名空间(Namespace):用于组织类,
using System;
是最常见的命名空间,包含了基本的类库。 - 类(Class):定义了数据和方法的模板,是C#程序的基本构建块。
- 方法(Method):类中定义的函数,用于执行操作。
- 变量(Variables):用于存储数据,如
int a = 5;
。 - 常量(Constants):其值在编译时确定,并且一旦设置不能改变,例如
const double pi = 3.14;
。 - 语句(Statements) 和 表达式(Expressions):执行动作和计算值。
- 注释:单行
//
和多行/* ... */
。
2. 数据类型
- 基本类型:
int
,double
,float
,bool
,char
,long
, 等。 - 复合类型:
string
, 数组, 列表等。 - 自定义类型:通过类(class)和结构(struct)定义。
3. 控制流程语句
- 条件语句:
if
,else
,switch
。 - 循环语句:
for
,foreach
,while
,do-while
。 - 跳转语句:
break
,continue
,return
,goto
。
4. 错误处理
- 异常处理:使用
try
,catch
,finally
,throw
。
5. 方法定义
- 参数类型:值传递、引用传递(
ref
关键字)、输出参数(out
关键字)、参数数组(params
关键字)。
6. 面向对象的特性
- 封装:使用访问修饰符如
public
,private
,protected
, 和internal
控制成员访问。 - 继承:使用
:
符号使一个类继承另一个类。 - 多态:通过
virtual
和override
关键字实现方法的重写。
7. 接口与抽象类
- 接口:定义一个完全抽象的模板,仅声明方法和属性,不包含实现。
- 抽象类:不能被实例化的类,通常用作基类。
8. 枚举和结构
- 枚举(Enum):为整数类型的变量集定义一个名字,增加代码可读性。
- 结构(Struct):值类型的数据结构,用于小型数据结构。
9. 属性(Properties)
- 使用
get
和set
访问器定义,可控制字段的读写权限。
10. 事件和委托
- 委托(Delegate):类似于函数指针,用于执行引用方法。
- 事件(Event):基于委托的一种特殊类型,用于实现事件驱动编程。