ToB企服应用市场:ToB评测及商务社交产业平台
标题:
面向对象ooDay6
[打印本页]
作者:
麻花痒
时间:
2022-9-16 17:15
标题:
面向对象ooDay6
精华笔记:
static final常量:应用率高
必须声明同时初始化
由类名打点来访问,不能被改变
建议:常量所有字母都大写,多个单词用_分隔
编译器在编译时会将常量直接替换为具体的数,效率高
何时用:数据永远不变,并且经常使用
抽象方法:
由abstract修饰
只有方法的定义,没有具体的实现(连{}都没有)
抽象类:
由abstract修饰
包含抽象方法的类必须是抽象类
抽象类不能被实例化(new对象)
抽象类是需要被继承的,派生类:
重写抽象方法---------------变不完整为完整
也声明为抽象类------------一般不这么用
抽象类的意义:
封装共有的属性和行为-------------------代码复用
为所有派生类提供统一的类型----------向上造型(代码复用)
可以包含抽象方法,为所有派生类提供统一的入口(向上造型后能点出来),同时可以达到强制必须重写的目的(相当于制定了一个标准)
补充:
设计规则:
将派生类所共有的属性和行为,抽到超类中-------------抽共性
若派生类的行为(实现代码)都一样,设计为普通方法
若派生类的行为(实现代码)都不一样,设计为抽象方法
。。。。下周二讲
抽象方法/抽象类的疑问:
抽象方法存在的意义是什么?
保证当发生向上造型时,通过超类的引用能点出来那个方法-------保证能点出方法来
既然抽象方法的意义是保证能点出来,那为什么不设计为普通方法呢?
设计为普通方法,意味着派生类可以重写也可以不重写,但设计为抽象方法,则可以强制派生类必须重写--------达到强制派生类重写,统一的目的
画对象带数:先找main
当创建(new)World对象时,就会分配World类中的成员变量(ship,submarines,mines,bombs)
frame.setVisible(true);时会自动调用paint()方法,在paint()中:当第1次用到Images类时,会将Images.class加载到方法区中,同时将那一堆静态图片分配到方法区中,同时自动执行静态块给图片赋值
ship.paintImage(g);时会去调用paintImage()方法,方法中的this指的就是ship战舰,方法中在判断战舰是否是活着的,若活着则获取战舰的图片,用画笔给画到战舰的x和y坐标上
submarines
.paintImage(g);时会去调用paintImage()方法,假设submarines
为侦察潜艇对象,则方法中的this指的就是侦察潜艇,方法中在判断侦察潜艇是否是活着的,若活着则获取侦察潜艇的图片,用画笔画到侦察潜艇的x和y坐标上 。假设submarines
为侦察潜艇对象......
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4