隐藏方法
隐藏方法
base只能访问父类里面的值
this只能访问子类里面的值
虚方法:
方法重写:
父类:virtual
子类:override
继承
父类,子类(派生类)
单继承,多继承
接口
栈和堆
可以单独控制set或get的访问权限。
属性可以单独只有set 或get。//只写或只读
属性函数只写可以不管返回值类型
get和set可以简写,/*属性找的是属性名小写之后的数据成员。*/这一段可能有错 并未赋值。
public int Age{get;set;}
匿名类型:
var=45;
var=“你好”
这是一个不确定类型,会在你初始化的时候确定类型,确定下来就不能修改了。
静态存储区
基本类型的默认赋值都是0
值类型的默认类型的默认值都是0
应用类型的默认值都是null
用构造函数可以直接在new括号内填写创建初始化的值
栈内存,值内存,静态存储区
字符串一般存储在静态存储区中,栈存储字符串地址
栈在堆里面
栈和堆
栈比较小,但是速度快,只能从栈的顶端插入或者删除,把数据放入成为入栈,把数据删除成为出栈
堆比较大,但是速度慢,可以从任意位置加入或者移除
匿名类型
v
一个类可以创建多个对象的,两个数据是互不干扰的,类只是个模板。
对象可以有多个的,类只需要有一个类
类就相当于模板,对象就相当于利用模板创造出来的一个实例的物品
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:密封类不能被继承,密封函数不能被重写
接口不提供任何实现,只包含方法,不包含字段(如数据成员)
抽象类则可以有普通函数和数据成员