20145229吴姗珊 《Java程序设计》小总结
20145229吴姗珊 《Java程序设计》小总结
教材学习内容总结
由于今天考试考到了操作题,根本无从下手,然后才意识到原来之前的学习都是蜻蜓点水,一味的把学习建立在给老师学,为家长学的基础上,每次都只是机械的敲代码,根本没有理解教材,因为今天考试考的是6,7章的内容然后自己一片空白,所以这次想从教材里入手,代码全部都托管了,踏踏实实的学一点东西,一些基础的东西,不是不懂装懂为了博客而博客的东西,至少有一点点改变,让自己的生活不再充满堕落与无知。
继承的必要性
如果某一数据成员改为其他名称,那么包含这个数据成员的所有类都要进行修改,这就造成了维护上的不便。因此需要把相同的程序代码提升为父类
子类
子类只能继承一个父类,继承除可避免类间重复的行为定义外,还有子类和父类存在着is-a的关系
子类如果继承抽象类,对于抽象方法有两种做法,一种做法是继续标志该方法为abstract,另一种做法是操作抽象方法
继承的好处
父类中定义的方法例如getName(),子类无需再次定义,可以直接取用;数据成员例如name改为其他名称,直接改父类,子类无须再次修改。
编译程序
编译程序就是语法检查器,要知道程序片段为何可以通过编译,为何却无法通过编译,就是将自己当作编译程序,检查语法的逻辑是否正确,方式是从=号右边往左读
对drawFight()方法而言,只知道传进来的会是一种Role对象,所以编译程序也只能检查你调用的方法以及Role是不是有定义
定义
有时候重新定义方法时,并非完全不满意父类中的方法,只是希望在执行父类中方法的前、后做点加工
多态定义:抽象来讲,就是使用单一接口操作多种类型的对象。对于课本范例,在showBlood()方法中,即可以通过Role类型操作剑士对象,也可以通过Role类型操作魔法师对象
class前也可以加上final关键字,class前使用了final关键字定义,那么表示这个类是最后一个了,不会再有子类,也就是不能被继承
重新定义:重新定义即是对待同一方法子类的修改
新定义:新定义则是一种合法的方法定义,定义一种新方法,对之前的方法没有任何影响。两者定义格式一样,新定义的产生往往是拼写错误。
super与this
两者可能看起来意思差不多,但是有了父类子类之后,this只是代表了当前类,super则代表了父类
而且两者只能选一个用,在构造的第一行才可以使用
垃圾收集
在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。JVM会把无法通过变量引用的对象当作垃圾对象进行搜集
接口定义
我理解的接口就是一段程序中可能有很多类会有共同的行为,但这些类本身并不具有任何关系,如果使用继承的话程序架构会不合理,所以使用统一的接口表示这些类具有共同的行为
对接口中的定义可以有两种处理方式:
1)操作接口中定义的方法
2)再度将该方法标示为 abstract
接口的出现将“多继承”通过另一种形式体现出来,即 “多实现”
接口与接口之间可以有继承关系
我们注意到该方法只定义了一个接口,但是并没有具体操作方法。如果想要拥有role中的行为必须操作接口。我们用关键字implements操作接口
使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。为了方便,也可以省略public abstract,编译程序会协助补齐。可以使用接口枚举常数,只能定义为public static final。为了方便,也可以省略public static final
其他(感悟、思考等,可选)
任何学科的基础一定是书本,只有认真的看书本,不是一味的为了加分而学习,带着学知识的想法去学习,不管学了多少,至少自己的这一天没有白过,可能生活过得太过安逸,高中那种学习的激情已经没有了,但是我相信,如果建立了一种学习的习惯,那么不管怎样,总会比浑浑噩噩的过完整个大学好。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/1 | 17/17 | |
第二周 | 100/100 | 1/1 | 15/15 | |
第三周 | 100/100 | 1/1 | 17/17 | |
第四周 | 380/380 | 1/1 | 15/15 |
参考资料
最新文章
- SVM实现邮件分类
- 手动创建Spring项目 Spring framework
- MFC 获取图像的大小
- python 获取 mac 地址 的代码
- Mybatis学习之配置文件
- 【译】 AWK教程指南 8处理多行数据
- android5.0中RecycleView的用法
- BZOJ 2314: 士兵的放置( 树形dp )
- 推荐2一个在Java编码过程中得心应手的工具
- vue-router实例
- 哪些类继承了Collection接口
- shell 生成目录的树状视图、生成文件及子目录的汇总信息
- laravel 对接 UCenter 基础
- Spring Data JPA使用getOne方法报错:Method threw 'org.hibernate.LazyInitializationException' exception. Cannot evaluate
- android:各种访问权限Permission
- Mysql 注入load_file常用路径
- OpenStack 网络服务 Neutron 私有网络构建(十九)
- 把git上面的scala工程转为eclipse工程
- Astah professional 7.2
- Kali-linux查看打开的端口
热门文章
- 有道词典for mac不能取词解决方案
- c#关于路径的总结(转) 虚拟路径波浪号~和斜杠/的区别
- 工作总结 无法确定条件表达式的类型,因为“<;null>;”和“System.DateTime”之间没有隐式转换 解决办法 object——Nullable<;T>; (可空类型)
- Struts2 后台获取路径的几种方法
- 借助Anyproxy实时监控接口调用次数和流量
- vi 详解
- redis+node.js
- HTTP响应头缓存控制
- PHP资源,库,工具大全
- Sql Server 查询一段日期内的全部礼拜天