一、面向对象编程简介
(1) 对象包括属性和方法,属性是指对象固有的特征,方法则是对象的行为。
(2) 面向对象语言的三大特征分别是封装、继承、多态。
二、C#类的定义
(1)C#类的定义(class)在 C# 语言中创建的任何项目都有类的存在,通过类能很好地 体现面向对象语言中封装、继承、多态的特性。
(2)访问修饰符只有两种:public, internal(默认取值)
(3)创建对象 是一个实例化操作
例:Program program=new Program
三、C#访问修饰符
1、成员的访问修饰符
(1) public 成员可以被任何代码访问。
(2)private 成员仅能被同一个类中的代码访问
(3)internal 成员仅能被同一个项目中的代码访问。
(4)protected 成员只能由类或派生类中的代码访问。
2、成员的修饰符
(1)对于static成员来说,它不属于任意一个对象,而是属于所以对象,当前类
(2)被static修饰的类叫静态类 特点:静态类中只能包含静态成员(静态方法,静态属性,静态字段)
(3)没有被static修饰的类叫非静态类 特点:非静态类中既可以包含非静态成员,也可以包含静态成员
(4)静态成员:它是属于当前类,而不是属于某一个对象。访问是通过类名去访问。
(5) 非静态成员:属于某一个对象,只有对象被实例化之后它才存在,访问是通过对象进行访问。
四、C#中的方法
1、方法的定义
abstract 修饰的类叫抽象类;修饰的方法叫抽象方法
2、get和set访问器
对于类来说属性一般不对外暴露,实现get和set访问器进行封装
3、构造方法
(1)函数==方法
(2)构造函数的作用:完成类的初始化工作
(3)静态代表全局
(4)静态成员和非静态成员在调用时的区别
1. 非静态成员:需要被对象调用,可以调用静态成员
2.静态成员:只能通过类名调用,不可以调用非静态成员
4、方法的重载
概念:在同一个作用域内,可以声明几个功能类似的同名函数。调用时根据不同的实 参列表选择相应的函数。
重载的特点:函数名相同,参数列表不同(参数个数和参数的类型)
5、方法的参数拓展
(1)方法中的参数分为实际参数和形式参数,实际参数被称为实参,是在调用方法时传 递的参数;形式参数被称为形参,是在方法定义中所写的参数。
(2)传参的两种方式(值传递和引用传递)
值传递:(传递基本数据类型) 在方法调用的时候将实参的值传递给方法;
方法内部修改值类型形参,不会影响实参
引用类型:方法内部修改引用类型形参,会影响实参
(3)ref关键字和out关键字
1、ref:当方法定义的时候在形参前面添加ref关键字表明是以引用的方式进行传参.(参数传递时也需要添加ref关键字)
2、out:out关键字修饰的参数为输出参数(参数传递时也需要添加out关键字)
3、内存包括
堆区 | 存放动态内存,实例化对象 |
栈区 | 存放临时变量,局部变量。基本值类型 |
静态区 | 全局区 |
方法区 |
|
6、方法的默认参数
(1)C#中允许给方法设置默认参数,当调用方法时如果没有传递相应的实参,那么系统就是使用默认参数替代。
(2)方法的默认参数只能设置在非默认参数的后面。且默认参数可以多个。
7、C#方法的递归调用
(1)递归调用 就是方法调用自身的一种形式。
(2)使用递归实现计算所输入数的阶乘。阶乘 n(n-1) !
8、C#部分类
(1)用于表示一个类中的一部分,关键字:partial;一个类可以由多个部分类构成。
(2)在这里,partial即为定义部分类的关键字。部分类主要用于当一个类中的内容较多 时将类中的内容拆分到不同的定义中,并且部分类的名称必须相同
(3)部分类中所有的类定义都需要添加partial关键字。