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

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

价格 免费

创建子类对象的方式

1.Boss b1=new boss();

2.Enemy b2=new boss();

第二种方式创建时,默认使用的方法是父类的,当使用了virtua虚方法的时候,使用的方法是子类的 

可以把子类赋值给父类。但是不能把父类赋值给子类(子类的要求更高)

例如  Enemy enemy=new boss();        对的

          Boss b = new Enemy;          错误

构造的子类对象赋值给父类声明的对象,本质还是子类的对象,但是父类声明的,子类里的方法不能使用

重写函数的办法

1.虚方法

在Enemy中

pubilc virtual void Move()

在boss类中

(输入override会有提示)

public override void Move()

{

base.Move();//和父类相同

}

2.隐藏方法、

[展开全文]

this 可以访问父类和子类,base只能访问父类

[展开全文]

案例实现

父类--boss

子类--type1ememy、type2ememy

1.创建enemy类

变量包括 血量hp、时间speed

方法(函数)包括AI、移动Move

2 .创建enemy派生出的boss类

boss类包括特殊的变量和方法

例如print方法用来打印boss的各个属性参数

skill方法用来使用技能

attack变量为攻击力

3.创建enemy派生出的type1ememy和type2ememy

 访问权限包括:private protected public

protected是指必须要子类才能调用

5.在boss函数中使用构造函数

 在主函数中先创建一个boss类的对象名为boos1,参数为100,穿个boss类

boss类

this 的作用

1.可以查看当前对象的所有变量

2.可以用来区分变量的对象

[展开全文]

利用类创建对象(因此对象也即为一个变量):

Customer c1 = new Customer();

以上可分为:

Customer c1;  //声明对象

c1 = new Customer;  //实例化一个对象,否则是空引用(等同于Customer c1 = null; 效果)

可以直接通过这个对象去访问类里的成员

[展开全文]

base 基 class 类

drived 派生 

派生方法:

    Drivedclass :Baseclass

[展开全文]

继承

定义:

把相同部分、属性变成父类(搞基)

在派生出来一些子类(派生类)也可以将某部分重写

继承包括:实现继承、接口继承、多重继承

多重继承(c++):例单继承是指只有一个父类派生出所有的子类,而多重继承是指可以继承多个父亲,每一个子类都可以继承自己想要继承的父类(可以有多个父类)

[展开全文]

对象引用

将一个类赋值给一个新定义的类 

Customer c2= c1;

but这样有一个bug,因为c1、c2的地址相同,修改了他们任何一个彼此都会改变

 

c1=null;

c1的地址会清空,c1原来的地址所指向的内容如果没有对象在引用的情况下,系统会自动释放空间

 

 

[展开全文]

字符串是引用类型的,存储的时候会把地址存放在栈中,内容先存放在静态存储区中,在对字符串进行2次赋值(修改)时,静态存储区会先存放新的内容,只是修改字符串的地址,最后存入堆

当对2个字符串进行赋值的时候先把地址存入栈,将内容存入静态存储区然后他们的地址相同

[展开全文]

自动生成构造函数:

  1. 右键选择快速操作和重构
  2.  生成构造函数
  3. 勾选

在存储内存的时候,值类型的会存在栈中

引用类型会先存放在静态存储区,然后将地址存放在栈中,最后内容存放在堆中j

[展开全文]

 类型包括:值类型 、引用类型

值类型:数值类型、boor、结构体(struct)

char,枚举类型(enum)

引用类型:string、数组、类

值类型存放在栈中

[展开全文]

栈(商店)

堆(仓库)

栈: 后进先出

     数据只能从栈的顶端插入和删除

     入栈(存入) | 出栈(删除) 

 

[展开全文]

当属性只有一个set或者get,视为只写或只读

set或者get的对象是属性函数首字母小写之后的变量

自动实现属性

var ni'm

[展开全文]

属性

 public 类型 变量成员

{

get{....}

set{...}

 } 

为什么我的属性不能用,属性的默认值是根据函数定义的,函数是public,属性就是public,不过也可以在属性前单独修改

[展开全文]
x扶光 · 2023-04-09 · 017-属性 0

构造函数不用返回值 

当形参和参数名相同时可以用this方法

this....>>成员

[展开全文]

构造函数--用来初始化数据的函数

 类名和函数名相同

[展开全文]

数据成员也称为字段、域

类是不用加public

  private 只能在函数内部使用

[展开全文]

利用类创建对象(变量)

Customer c1(声明变量)

Customer c1=new Customer();(实例化)

赋值和结构体类似

c1.name="koBe";

调用类里的函数

变量名.函数名  例如:C1.show ( );

 

[展开全文]

类就是创建对象的模板

类包括数据成员、函数成员 

创建类

  1. 在解决方案中生成新项目

系统默认的类:class program

program 类名,一般情况下一个类对应一个文件

       2.在当前项目中添加 类 

[展开全文]

面向对象编程(模块化编程)

object 对象,物品

 

[展开全文]

数组 创建:

  1. type[ ] array={1,2,3}
  2. type[ ] array=new type[Length] 

中断快捷键F9

 

 

 

[展开全文]

授课教师

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

课程特色

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

学员动态

Liu1233 开始学习 001-课程介绍
居居cindy 开始学习 素材.zip
居居cindy 加入学习