oop:面向对象,全称叫 object oriented programming
面向对象的三大特性:1.封装 2.继承 3.多态
类的定义:实际上就是具有相同属性和特征的一类事物的抽象集合。
对象的定义:抽象类的实例。
类和对象的关系,类是对象的抽象,对象是类的实例
1.知道了类的定义,如何定义类
使用系统关键字(访问修饰符 internal)class+类名{
}
class Student
{
}
这样就定义了一个类
注意一点:类和类之间属于同级关系
2.如何描述类的特征
字段或者类成员对象
字段和普通局部变量的区别
局部变量没有初始化,访问该局部变量编译不会通过,字段不会
3.实例化对象
采用系统关键字new + 类名()
Student p = new Student();
这样就实例化了一个对象
* new关键字的作用:
1.开辟一块内存空间(堆区)
2.在开辟出来的内存空间中存对象信息
3.初始化对象(调用构造函数)
* 4.如何描述类的行为
* 叫做方法或者函数
* 语法格式 修饰词+函数返回值+函数名(形参列表){
* 函数体;
* }
public void hello()
{
}
这是一个无参无返的方法
* 5.修饰符()
* public:公开的意思,常用于修饰类字段,修饰类中的方法
* 就是可以非本类之外也可以访问
* private:常用于修饰字段,方法,也是C#语言中默认的修饰符
* 就是只有本类才可以访问。
* internal:程序集内部可以访问
* protected:基类和派生类可以访问
常用四个访问修饰符,还有一个是 internal protected 表示在同一个程序集内的基类和派生类可以访问
* 6.方法的返回值
* 如果方法有返回值,就返回方法实际类型的返回值,关键字return + 返回内容
* 如果方法内有多个return就返回第一个return,其余return没用
* 如果方法没有返回值,可以省略return不写,直接写方法体内的方法块即可
* 方法有四种
有参无返,无参无返,有参有返,无参有返
* 7.枚举变量
*
* 格式:enum + 枚举名称
* {
* 枚举变量1,
* 枚举变量2,
* 枚举变量3
* }
*
* 8.构造函数(重点掌握)
* 构造函数的作用:让一个类更完整,构造函数就是用来创建对象,初始化字段用的。
* 构造函数的格式:修饰符 + 类名(){
* }
* 构造函数的特点
* 1.构造函数压根就没有返回值
* 2.构造函数的名称必须和类名保持一致
* 3.构造函数支持方法重载,换句话说可以有多个构造函数,但是,参数个数必须不相同
* 4.构造函数无法进行手动调用(系统自动调用)
* 5.如果类中不包含构造函数,那么系统会自动的为该类添加一个无参的构造方法
* 6.如果类中存在带有参数的构造函数,那么系统不会为该类添加无参的构造方法
class Student
{
private string name;
public int sno;
private int nianji;
private int classNum;
private int score;
public Student(string name,int sno,int nianji,int classNum,int score)
{
this.name = name;
this.sno = sno;
this.nianji = nianji;
this.classNum = classNum;
this.score = score;
}
public void show(int sno){
if (this.sno == sno) {
Console.WriteLine ("名字:{0}学号是:{1}年级:{2}班级:{3}分数:{4}",name,sno,nianji,classNum,score);
}
}
}
在Main方法里面是
Student p = new Student ("dsa", 10, 2, 1, 50);
p.show(10);
这样就用构造函数给类里面的字段进行了赋值,show方法是为了查找学号为10的学生;