12405人加入学习
(21人评价)
C#编程-第二季-面向对象-宇宙最简单2021最新版

制作完成于2021-10月20日 使用VS2019

价格 免费

栈和堆

栈比较小,但是速度快,只能从栈的顶端插入或者删除,把数据放入成为入栈,把数据删除成为出栈

堆比较大,但是速度慢,可以从任意位置加入或者移除

[展开全文]

一个类可以创建多个对象的,两个数据是互不干扰的,类只是个模板。

对象可以有多个的,类只需要有一个类

类就相当于模板,对象就相当于利用模板创造出来的一个实例的物品

private //私有的,只能访问类内部

[展开全文]

如何调用   

对象本质上就是变量;


类名 变量名 =new 类名();

第一步 声明一个对象,
第二部  给这个对象赋值”给这个对象实例化“

结构体不需要new   对象需要new赋值。

对象必须得new出来,不能空赋值null;

 

[展开全文]

类实际上就是创建对象的一个模板
类的结构类似于结构体
包含数据成员和函数成员

函数成员提供了操作类中数据的某些功能

我们的每一个类是使用单独的一个文件保存的

一般情况下一个文件是可以包含多个类的,但一般情况下是一个文件一个类。

 

[展开全文]

1.无参情况

public DriveClass():base(){...}//会先调用父类构造函数,不写base也会默认调用

2

public DriveClass

(int attack,int hp,int speed):base(hp,speed){}

//hp,speed是父类里的变量,attack是DriveClass独有的

DriveClass t=new DriveClass(100,80,10);//即给自身变量初始化了也给父类初始化了

[展开全文]

栈:先进后出,后进先出

[展开全文]

构造函数用于初始化数据的函数(不构造会按默认值赋值)

语法是声明一个和所在类同名的方法,不带返回类型

[展开全文]

抽象函数只有函数定义没有函数体,不能实例化

可以包含普通的函数等

抽象函数本身是virtual

 

sealed:密封类不能被继承,密封函数不能被重写

 

[展开全文]

接口不提供任何实现,只包含方法,不包含字段(如数据成员)

抽象类则可以有普通函数和数据成员

[展开全文]

在使用equals对字符串继续比较时,字符的大小写不会影响结果 

可以随意使用一个变量来调用equals

console.WriteLine(对象1.equals(对象2));

equals对比是根据引用来判断的

重写equals用过值来判断

[展开全文]

插入的操作

1.迁移(从后往前,将插入点后的数据后移)

for(int i=count-1;i>index-1;i--)

{

array[i+1]=array[i];

}
2.将数据插入,count++,

 

移除的操作(参数是索引,不是值)

从前往后覆盖

[展开全文]

1.抽象类可以包含方法体,接口不能包含方法体,所以接口就不能包含普通带有函数体的函数了

2.抽象类是一个不完整的模板,他只能通过继承来实现构造对象,所以抽象类通常被称为抽象基类

3.接口也是一个不完整的模板,同样也不能够完成实例化(构造对象),

抽象类和接口的区别:抽象类可以用普通函数

new方法和override方法都相当于把父类的函数在子类重写一遍,只要是子类构造的,在调用函数的时候都会调用子类重写后的。new隐藏方法如果是用子类构造,父类声明的就会调用父类的方法(哪个声明的就用那个的方法new son()是构造father b=new son()是声明),virtual必须和override一起使用,但new可以单独使用

用子类构造的数据可以传给父类,在调用函数时会调用子类的例如a.Fun2(b),主要是看参数,也即是b是子类还是父类的,当参数是整数或者不是子类或者父类的,就看是谁调用的,也就是这里的a,如果是a调用的就执行父类的函数,如果是b调用的就执行b类重回后的函数

[展开全文]

运算符重载

函数重载相当于重写

运算符重载相当于重新定义运算符的运算方法

比如,判断数据是否相等默认情况是根据判断数据的引用(地址)是否相等,想要重新定义==的功能根据值判断 >>运算符重载

声明函数 :

public static bool operator==(Students1,Student s2)
==和!=必须成对的写 

 public static bool operator !=(Student s1, Student s2)
        {
            bool result = s1 == s2;//程序的思路应该是多利用已有的资源,举一反三
            //s1==s2只是一种运算
            return !result;//返回与==运算相反的值,bool也可以取反 }

c#中可以重写的运算符有:==、!=、>、<、

 

[展开全文]

索引器

定义索引器电脑方法:

public int this 【int  index】

{

get{}set{}

}

使用索引器的方法:取值,赋值

运算器重载     

 索引器的使用在主函数中   

Console.WriteLine(wk["Thur"]);

  在类中  public int this[string day]
      {

            get
            {    }
        }、

索引器相对于普通函数书写跟整洁

[展开全文]

接口的继承

Interface 接口 method 方法

interface Interface2:Interface1

在一个新类中实现

class classInterface :Interface2

一个类可以继承多个接口但只能继承一个类

例如:

class classInterface:Interface2,Interface1,Brid

 

[展开全文]

接口

定义接口:

新建项,接口名为IFly

interface 接口名

{

void fly();

}

(习惯在接口名前+I),接口里是不包含数据成员的

定义一个接口在语法上和定义抽象类完全相同,但不允许提供接口中有成员,接口只能包含方法,属性,索引器和事件的申明。

接口不能有构造函数,也不能有字段(成员),接口也不允许运算器重载

接口定义中不允许声明成员的修饰符,接口成员都是公有的

IFly 飞翔接口可以包含多个方法,默认为public

接口没有继承,实现接口的方法有

1.传统

定义 一个新的类,从中类似于继承

  class 类名:接口名实现窗口

 

2.多态

IFly fly;

fly = new Plane();

fly.Fly();

 

[展开全文]

授课教师

问问题加入A计划,有专门负责答疑的老师哦!!!

课程特色

下载资料(1)
视频(60)