继承
定义:
把相同部分、属性变成父类(搞基)
在派生出来一些子类(派生类)也可以将某部分重写
继承包括:实现继承、接口继承、多重继承
多重继承(c++):例单继承是指只有一个父类派生出所有的子类,而多重继承是指可以继承多个父亲,每一个子类都可以继承自己想要继承的父类(可以有多个父类)
继承
定义:
把相同部分、属性变成父类(搞基)
在派生出来一些子类(派生类)也可以将某部分重写
继承包括:实现继承、接口继承、多重继承
多重继承(c++):例单继承是指只有一个父类派生出所有的子类,而多重继承是指可以继承多个父亲,每一个子类都可以继承自己想要继承的父类(可以有多个父类)
对象引用
将一个类赋值给一个新定义的类
Customer c2= c1;
but这样有一个bug,因为c1、c2的地址相同,修改了他们任何一个彼此都会改变
c1=null;
c1的地址会清空,c1原来的地址所指向的内容如果没有对象在引用的情况下,系统会自动释放空间
字符串是引用类型的,存储的时候会把地址存放在栈中,内容先存放在静态存储区中,在对字符串进行2次赋值(修改)时,静态存储区会先存放新的内容,只是修改字符串的地址,最后存入堆
当对2个字符串进行赋值的时候先把地址存入栈,将内容存入静态存储区然后他们的地址相同
自动生成构造函数:
在存储内存的时候,值类型的会存在栈中
引用类型会先存放在静态存储区,然后将地址存放在栈中,最后内容存放在堆中j
类型包括:值类型 、引用类型
值类型:数值类型、boor、结构体(struct)
char,枚举类型(enum)
引用类型:string、数组、类
值类型存放在栈中
栈(商店)
堆(仓库)
栈: 后进先出
数据只能从栈的顶端插入和删除
入栈(存入) | 出栈(删除)
当属性只有一个set或者get,视为只写或只读
set或者get的对象是属性函数首字母小写之后的变量
自动实现属性
var ni'm
属性
public 类型 变量成员
{
get{....}
set{...}
}
为什么我的属性不能用,属性的默认值是根据函数定义的,函数是public,属性就是public,不过也可以在属性前单独修改
构造函数不用返回值
当形参和参数名相同时可以用this方法
this....>>成员
构造函数--用来初始化数据的函数
类名和函数名相同
数据成员也称为字段、域
类是不用加public
private 只能在函数内部使用
利用类创建对象(变量)
Customer c1(声明变量)
Customer c1=new Customer();(实例化)
赋值和结构体类似
c1.name="koBe";
调用类里的函数
变量名.函数名 例如:C1.show ( );
类
类就是创建对象的模板
类包括数据成员、函数成员
创建类
系统默认的类:class program
program 类名,一般情况下一个类对应一个文件
2.在当前项目中添加 类
面向对象编程(模块化编程)
object 对象,物品
数组 创建:
中断快捷键F9
catch ( FormaEeception e)
查找程序是否异常
enemy = new Boss(50,50,50);//但enemy.BossSkill()用不了
//enemy = new EnemyType1();
Boss c;
//不能这么设置c = new Enemy();
Enemy enemyboss = new Boss(11, 44, 55);
enemyboss.Move();//用的是boss的move方法,这是虚方法重写Move
enemyboss.AI();//用的是enemy的move方法,这是隐藏方法重写AI
栈去 堆区 静态存储区
引用类型 枚举
字符串常量存储在静态存储区 堆去存地址
这几节好懵,
ArrayList可以存储 不同类型的数据