当前位置: 首页 > news >正文

20145222黄亚奇《Java程序设计》第4周学习总结

教材学习内容总结

第6章

  • 为了避免重复的行为定义使用继承。
  • 要学会如何正确判断使用继承的时机以及继承之后如何活用多态。
  • 继承的好处之一,就是若你要将name、lexel、blood改为其他名称,那就只要修改Role.java就可以了,只要是继承Role的子类都无法修改。
  • 子类只能继承一个父类,子类与父类之间会有is-a的关系。
    其中判断方法例子如下:
Role role1=new SwordsMan();//SwordsMan是一种Role,编译通过。
SwordsMan swordsMan=role1;//Role不一定是一种SordsMan,编译失败。
  • 正确的多态语法逻辑判断方式:从=号右边往左读,看右边是不是一种左边。
  • 多态:使用单一接口操作多种类型的对象。
  • 如果某方法区块中真的没有任何程序代码操作,可以使用abstract标示该方法为抽象方法,该方法不用撰写{}区块,直接“;”结束即可。
  • Java中规定内含抽象方法的类,一定要在class前标示abstract,表示这是一个定义不完整的抽象类。
  • 被声明为protect的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
  • 如果想取得父类中的方法定义,可以在调用方法前,加上super关键字。
  • 如果class 前使用了final关键字定义,那么表示这个类是最后一个了,不会再有子类,也就是不能被继承。
  • 如果定义类时没有使用extend关键字制定继承任何类,那一定是继承java.lang.Object。

    第7章

  • 类要操作接口,必须使用implements关键字。
  • 对于接口多态语法的判断,方式是“右边是不是拥有左边的行为”,或者“右边对象是不是操作了左边接口”。
  • 使用interface来定义抽象的行为外观,方法要声明为public abstract,无须且不能有操作。
  • enum语法,可以用于定义枚举常数。

教材学习中的问题和解决过程

  • 问题:不懂在实际操作中怎样将父类与子类的程序结合起来;解决过程:还未解决,正在询问同学中。

代码调试中的问题和解决过程

package cc.openhome;

class Some {
void doService(){
    System.out.println("some service");
}
}
class Other extends Some{
@Override
void doService(){
     System.out.println("other service");
}
}
public class Main {

    public static void main(String[] args) {
       Other other = new Other();
       other.doService();
    }
    
}
package cc.openhome;

class Some {
void doService(){
    System.out.println("some service");
}
}
class Other extends Some{
@Override
void doService(){
     System.out.println("other service");
}
}
public class Main {

    public static void main(String[] args) {
       Some some = new Other();
       some.doService();
    }
    
}

为何将main()中改变运行结果是一样的?解决过程:通过回顾本章内容,原来继承时使用extends关键字会使Other扩充Some的行为,继续Some的行为,再扩充Some中的doService()行为。

其他(感悟、思考等,可选)

随着学习章节的增多,渐渐对Java有了越来越全面的理解,这周学习了继承和接口,渐渐的了解了模块代码的结合操作。在敲代码的过程中,虽然还是不能完全理解每段代码的意思以及代码段之间的联系,但慢慢适应吧,多花点功夫总会弄懂的。

代码托管截图:886717-20160327222852823-168404915.png

学习进度条

代码行数博客量学习时间重要成长
目标5000行30篇400小时
第一周80115懂得了Java与C语言的区别,自己要花更多的时间来学习Java
第二周120115学会了使用IDE并成功运行代码,也发现了Java语法与C语言的相似。
第三周200116有了敲代码同时注释的意识并且运用了少许
第四周300116渐渐的了解了模块代码的结合操作

转载于:https://www.cnblogs.com/huangyaqi/p/5326549.html

相关文章:

  • oracle数据库导入导出命令
  • Java NIO系列教程(二) Channel
  • Exception: 找不到或无法加载已注册的 .Net Framework Data Provider。
  • Ubuntu中vim添加lua支持
  • 《转载》化繁为简 如何向老婆解释MapReduce?
  • 获取AX的窗口所有控件的lableID及内容
  • 大数乘法(C语言实现)
  • Android IOS WebRTC 音视频开发总结(六七)-- 在线教育虽火要做好其实不容易
  • idea
  • git fetch 拉取而不合并
  • ZFS ARC L2ARC zfs-$ver/module/zfs/arc.c
  • Java 8新的时间日期库的20个使用示例
  • [翻译]Axure-Page Properties-原型设计工具Axure学习-第1.2节
  • jquery--递增--年份的选择
  • 并发数据结构-1.4 池
  • [译]前端离线指南(上)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • DataBase in Android
  • ES6系统学习----从Apollo Client看解构赋值
  • HTML-表单
  • Java IO学习笔记一
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • PhantomJS 安装
  • PHP 的 SAPI 是个什么东西
  • ReactNative开发常用的三方模块
  • tweak 支持第三方库
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue组件定义
  • win10下安装mysql5.7
  • 分布式事物理论与实践
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 力扣(LeetCode)56
  • 我有几个粽子,和一个故事
  • ​io --- 处理流的核心工具​
  • ​Linux·i2c驱动架构​
  • $.ajax()
  • (C#)获取字符编码的类
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (南京观海微电子)——COF介绍
  • (学习日记)2024.01.09
  • (一)Java算法:二分查找
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转载)从 Java 代码到 Java 堆
  • .NET : 在VS2008中计算代码度量值
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 5种线程安全集合
  • .Net Web窗口页属性
  • .Net7 环境安装配置
  • .net与java建立WebService再互相调用
  • @Async注解的坑,小心
  • @test注解_Spring 自定义注解你了解过吗?