面向对象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[i].paintImage(g);时会去调用paintImage()方法,假设submarines[i]为侦察潜艇对象,则方法中的this指的就是侦察潜艇,方法中在判断侦察潜艇是否是活着的,若活着则获取侦察潜艇的图片,用画笔画到侦察潜艇的x和y坐标上 。假设submarines[i]为侦察潜艇对象......
面向对象ooDay6的更多相关文章
- angular2系列教程(六)两种pipe:函数式编程与面向对象编程
今天,我们要讲的是angualr2的pipe这个知识点. 例子
- 一起学 Java(二)面向对象
一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
- 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型
前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...
- .NET 基础 一步步 一幕幕[面向对象之对象和类]
对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...
- 简单分析JavaScript中的面向对象
初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...
- Java程序员应该了解的10个面向对象设计原则
面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorat ...
- JavaScript学习笔记(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- 带你一分钟理解闭包--js面向对象编程
上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...
- .NET基础拾遗(2)面向对象的实现和异常的处理基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
随机推荐
- 【Python实例】用脚本自动拿一个或多个仿真环境
注1:之前使用的是perl,现在尝试切换到python; 注2:该脚本用于实现自动拿仿真环境,里面应该还有很多不足之处,后续逐渐完善; 注3:假设脚本名字为get_env.py,直接执行脚本,会有两次 ...
- Jenkins自动化部署(linux环境)---执行脚本
1.安装node插件 2.node全局配置 3.填写jenkins构建时执行的shell脚本 完整命令 node -v npm install rm -rf ./dist/* npm run buil ...
- 一些test短代码
#include <stdio.h> int main(){ char ray_tx_pwr[2][3]={{1,2,3},{4,5,6}}; int i = 0; printf(&quo ...
- unity task
https://blog.csdn.net/weixin_43405845/article/details/105028291
- HOW TO RENDER TO A TEXTURE ARRAY IN UNITY
http://xdpixel.com/how-to-render-to-a-texture-array-in-unity/
- LOD Group
LOD Group 调节摄像机距离,在不同的距离显示不同物体.常用于物体高低模之间的转换,如离摄像机较远时渲染低模物体,离摄像机较近时渲染高模物体.
- JavaScript垃圾回收机制的了解
对于js种的任意长度字符串,对象,数组是没有固定大小的,只有在分配存储时,解释器就会分配内存来存储这些数据.当js的解释器消耗完系统所有可用内存时,就会造成系统崩溃.因此js有着自己的一套垃圾回收机制 ...
- TypeScript 合并以及删除数组数据
1.添加 concat() 2.删除(替换) splice() array.splice(index,int,any) index 是 array数组起始位置的index(从0开始) int是操作从i ...
- holiday10
holiday10 ssh配置别名 每次输入 ssh -p port user@remote 时间久了都会觉得麻烦, 而 配置别名 可以让我们进一步偷懒,比如用 ssh mac 来代替上面一长串,那么 ...
- 计蒜客(Stone Game)01背包
题意:在集合中挑一些数,形成一个集合S,剩下的数形成另一个集合P,使得S>= P ,并且对于S中任意元素ai,S-ai<=P 问有多少种方案. 题目链接:https://nanti.jis ...