day12文字笔记
知识回顾:
1、package和import
2、访问控制修饰符
3、final:
4、static:
正课内容:
1、static final常量
2、抽象方法:
设计规则:
1)将派生类所有共有的属性与行为抽到超类中—抽共性
2)派生类的行为都一样,设计为普通方法。派生类的行为不一样,设计为抽象方法
由abstract修饰,只有方法的定义,没有具体的实现
3、抽象类:
由abstract修饰
包含抽象方法的类必须时抽象类
抽象类不能被实例化(不能new对象)
抽象类是需要被继承的
***抽象方法存在的意义是什么? 答:当向上造型时,通过超类的引用能点出方法来,但具体执行的是派生类重写之后的----意义在于保证能点出来 ***若抽象方法的意义仅为能点出来,那为何不设计普通方法? 答:当设计为抽象方法,可以强制派生类必须重写,而普通方法是达不到强制重写的效果的----意义在于强制必须重写 ***抽象类的意义: 1.封装共有的属性和行为----超类意义代码复用 2.为所有的派生类提供统一的类型---向上造型 3.可以包含抽象方法,为所有的派生类提供统一的入口,派生类的具体实现不同,但是入口时一致的(能点出来) 抽象方法是必须被重写的,普通方法是你可以重写也可以不重写
一个类不能new对象,单独存在是没有意义的
*****潜艇游戏第6天:
画对象—一共需要三个数据(图片,x坐标,y坐标)
1.想画对象需要去获取对象的图片,每个对象都得获取图片,意味着获取图片的行为是共有行为----设计为SeaObject超类中,
每个对象获取图片的行为都不一样,所以设计成抽象方法
2.在7个派生类中重写getImage(),并获取图片
3.画图片时需要去判断对象的状态,因为只有对象活着才画对象,每个对象都有状态,意味着状态为共有属性,所以应该设计在
SeaObject—准备状态,状态一般都设计为常量,同时再设计state变量表示当前状态
—在SeaObject中设计LIFE,DEAD状态常量,state变量表示当前状态
—状态有了还需要进行判断,每个对象都能进行判断,意味着判断对象的行为是共有行为,所以设计在Seaobject中,
每个判断对象的行为都一样,所以设计为普通方法
—在SeaObject中设计isLife()、isDead()判断状态
4.游戏中的对象是可以死并消失的
对象的图片、x坐标、y坐标都有了,就可以开画了,每个对象都可以画图片,意味着画图片的行为是共有行为,所以设计在
SeaObject中,每个对象画图片的行为都是一样,所以设计为普通方法
—在Seaobject中设计paintImage()画图片
—在画图片的时候要求,如果对象活着才画图片
5)画图片的行为做好后,在world中调用即可
—给对象数组填充测试数据
—重写paint()方法:画海洋图、调用paintImage()画图片/对象