20155305乔磊2016-2017-2《Java程序设计》第四周学习总结

20155305乔磊2016-2017-2《Java程序设计》第四周学习总结

教材学习内容总结

继承

  • 继承就是避免多个类间重复定义共同行为。
  • 面向对象中,子类继承父类,就是把程序中相同的代码部分提升为父类。
  • extends关键字,表示前者会扩充后者的行为,即继承后者的行为。fight()为SwordsMan扩充的Role没有的行为。
  • private成员也会被继承,不过子类无法直接存取,必须通过父类提供的方法存取。

is-a(是一种)关系

  • 子类只能继承一个父类,这种子类父类之间的关系就是is-a关系。
  • 检查语法逻辑是否正确,方式是从=右边往左读:判断右边是不是一种左边。例:Role role1=new SwordsMan();即判断SwordsMan是不是一种Role?若是则语法正确,反之则编译失败。
  • 强制让后者是一种前者:Role role1=new SwordsMan();SwordsMan swordsman=(SwordsMan) role1;

多态

  • 使用单一接口操作多种类型的对象,具有更高的可维护性。
  • Java以继承及界面来实现多态,是次态多态的一种实现。

      public class RPG2{public static void main (String[] args){SwordsMan swordsMan = new SwordsMan();swordsMan.setName("Justin");swordsMan.setLevel(1);swordsMan.setBlood(200);Magician magician = new Magician();magician.setName("Moinca");magician.setLevel(1);magician.setBlood(100);showBlood(swordsMan);   //SwordsMan是一种RoleshowBlood(magician);}static void showBlood(Role role)   //声明为Role类型{System.out.printf("%s 血量 %d%n",role.getName(), role.getBlood());}}

重新定义行为

  • SwordsMan与Magician的fight()方法签署的都是public void fight(),操作接口相同,只是方法操作内容不同,因此,可以将fight()方法提升至Role类中定义。
  • 如果传入drawFight()的是SwordsMan,role参数参考的就是SwordsMan实例,操作的就是SwordsMan上的fight()方法定义。
  • 重新定义父类中某个方法时,子类必须撰写与父类方法中相同的签署。可以在子类中某个方法前使用@Override要求编译程序检查该方法是不是真的重新定义了父类中某个方法,如果不是会引发编译错误。
  • 对于父类中的方法权限,只能扩大不能缩小。

抽象方法 抽象类

  • 抽象方法:某方法区块中没有任何程序代码操作,用abstract表示该方法为抽象方法,不用撰写{}区块,直接";"结束即可。
  • 抽象类:内含抽象方法的类,一定要在class前标示abstract,表示类定义不完整,不能用来生成实例。

protected

  • 被声明为protected的成员,相同包中的类可以直接存取,不同包中的类可以在继承后的子类直接存取。
  • private、无关键字、protected、public权限依次递增。

构造函数

  • 类有继承关系时,会先进行父类定义的初始流程,再进行子类定义的初始流程。
  • 父类中可以重载多个构造函数,如果子类构造函数中没有制定执行父类中哪个构造函数,默认会调用父类中无参数构造函数。
  • this()super()只能择一调用,并且要写在构造函数第一行执行。

final关键字

  • class或方法被声明为final,表示这是最后一个,不会再有子类或子类不可以重新定义方法。

java.lang.Object

  • java.lang.Object是最上层父类,Java中所有对象一定是一种Object。

接口的默认

  • Java中可以使用interface来定义抽象的行为和外观。
  • 接口中的方法没有操作时一定得是公开且抽象的。
  • 接口可以继承别的接口,也可以同时继承两个以上的接口,同样也是用extends关键字,这代表了继承父接口的行为。

匿名内部类

  • 临时继承某个类或操作某个接口并建立实例,由于这类子类或接口操作类只使用一次,不需要为这些类定义名称,可以使用匿名内部类。

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

  • 问题:本来像书上p167中的fight()方法运行都没有问题,但是按照书上p169抽象方法与抽象类中,将前面的Role.java中的fight()方法改成如下的格式public abstract void fight();之后,RPG.java就运行不了了。
  • 解决方法:待解决。

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

  • 问题:Guest访客名称,访客名单在run的时候出现了问题
    1071527-20170317233618885-1307098996.png
    后来在run edit中发现自己把各项都改成了Guest
    1071527-20170317233758995-323342799.png
  • 解决方法:把run edit中各项改了
    1071527-20170317234026573-2040249044.png
    运行结果正确
    1071527-20170317234100932-1426291407.png

代码托管

1071527-20170319190830479-2108887282.png

上周考试错题总结

  • 填空:Linux Bash中,(grep )命令可以进行全文搜索。
  • 填空:System.out.println(“”+52+25);的结果是(5225)
  • 填空:System.out.println(52+25+””);的结果是(77)
  • 填空:p86 命令行下编译Guess.java的命令是(javac -d . Guess.java)
  • 填空:两个Integer对象比较大小,可以使用(comareTo())方法
    上网查Interger对象的比较方法写的是ValueOf()。老师答案是comareTo()。不太理解。
  • 填空:“30”转化为byte类型的30的语句是(Byte.parseByte(“30”);)。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标3000行20篇400小时
第一周200/2001/118/18
第二周153/3531/218/36
第三周356/7091/324/60
第四周450/12591/428/85

参考:软件工程软件的估计为什么这么难,软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:28小时

  • 改进情况:计划学习时间由于上周没有达成,所以这周仍然定为30小时,学习时间有所提高。

  • 有空多看看现代软件工程 课件 软件工程师能力自我评价表

参考资料

  • Java学习笔记(第8版)

  • 《Java学习笔记(第8版)》学习指导

转载于:https://www.cnblogs.com/20155305ql/p/6537588.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【eclipse转idea的第一天】配置idea

为什么80%的码农都做不了架构师?>>> 导入maven项目 设置maven(全局) 为了不然才转idea的码友们重复我犯过的错,我这儿截图步骤说明下: 这里是列表文本这里是列表文本idea的设置有两种:全局,局部(我这么叫的…

Vmware 安装虚拟工具 (二)

打开虚拟机,以root超级用户登陆,菜单栏选择虚拟机,install安装虚拟机 拷贝虚拟工具到 在根目录下建立文件夹,并将工具拷贝到该文件夹,例如vmtool 打开终端,进入该目录开始安装 如图,进入目录解压…

git与svn的区别 ?Git 与 SVN那个更好?

git与svn的区别 : http://www.360doc.com/content/12/1228/20/11220452_256857021.shtml 在版本控制系统的选型上,是选择Git还是SVN? 对于开源项目来说这不算问题。使用Git极大地提高了开发效率、扩大了开源项目的参与度、 增强了版本控制系统…

利用Arcgis for javascript API绘制GeoJSON并同时弹出多个Popup

1.引言 由于Arcgis for javascript API不可以绘制Geojson,并且提供的Popup一般只可以弹出一个,在很多专题图制作中,会遇到不少的麻烦。因此本文结合了两个现有的Arcgis for javascript API扩充库,对其进行改造达到绘制Geojson并同…

HBase数据备份及恢复(导入导出)的常用方法

一、说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产。备份Hbase时的难点是其待备份的数据集可能非常巨大,因此备份方案必须有很高的…

Android商城开发系列(二)——App启动欢迎页面制作

商城APP一般都会在应用启动时有一个欢迎界面,下面我们来实现一个最简单的欢迎页开发:就是打开商城App,先出现欢迎界面,停留几秒钟,自动进入应用程序的主界面。 首先先定义WelcomeActivity布局,布局非常简单…

DELL安装不了mysql_Windows 版本 Mysql 8.x 安装

1、官网下载安装包百度网盘链接:https://pan.baidu.com/s/1cFRbQM5720xrzMxbgjPeyA提取码:xlz72、解压安装包并新建一个文件夹作为安装目录(mysqlInstall)3、配置 Mysql 环境变量4、在解压好的目录下新建一个 my.ini 文件(注意:my.ini 文件和…

Hyper-V Server联机调整虚拟硬盘大小

1. 技术概述: 从 Windows Server 2012 R2开始,管理员可以在运行虚拟机的同时,使用 Hyper-V 来扩展或压缩虚拟硬盘的大小。存储管理员可以通过对运行中的虚拟硬盘执行维护操作来避免代价不菲的停机。不再需要关闭虚拟机,这可以避免…

python网络爬虫(5)BeautifulSoup的使用示范

创建并显示原始内容 其中的lxml第三方解释器加快解析速度 import bs4 from bs4 import BeautifulSoup html_str """ <html><head><title>The Dormouses story</title></head> <body> <p class"title"><…

物联网笔记

转载于:https://www.cnblogs.com/16-C-kai/p/6596682.html

关于大学生玩网络游戏的调查问卷

1.创建问卷&#xff0c;输入调查名称 2编辑问卷 3检查问卷&#xff0c;是否有误 4.提交并发布问卷 5分享问卷 6.问卷分析 转载于:https://www.cnblogs.com/dzw1996/p/7786754.html

第六次 实验

转载于:https://www.cnblogs.com/P201821440005/p/10967987.html

du命令、df命令用法

一、du命令 [plain] view plaincopy print?[rootwc1 mysql]# du --help Usage: du [OPTION]... [FILE]... or: du [OPTION]... --files0-fromF Summarize disk usage of each FILE, recursively for directories. Mandatory arguments to long options are mandatory…

SQL Server 2008 - Cannot set a credential for principal 'sa'.

很久没有用到SQL Server了&#xff0c;今天有幸在帮同事解决一个SQL Server数据连接的问题时突然发现我无法修改我的sa用户的密码了。过程是这样的&#xff1a;一开始我本地的数据库实例是Windows认证方式&#xff0c;我想将它改成Windows和数据库混合认证方式后用sa账户登录&a…

Java小知识-----Map 按Key排序和按Value排序

Map排序的方式有很多种&#xff0c;这里记录下自己总结的两种比较常用的方式&#xff1a;按键排序(sort by key)&#xff0c; 按值排序(sort by value)。 1、按键排序 jdk内置的java.util包下的TreeMap<K,V>既可满足此类需求&#xff0c;向其构造方法 TreeMap(Comparator…

Microsoft Deployment Toolkit 2010 新功能实战之一

续Microsoft Deployment Toolkit 2010 Beta 2先睹为快&#xff01;下面将通过使用Microsoft Deployment Toolkit 2010来部署Windows 7来介绍它的新功能的具体操作。有些概念的理解和操作方法参见MDT2008部署之一概览。 一、实验环境操作全部在VMware Workstation的虚拟操作环境…

Netbackup detected IBM drives as unusable

今天在远程给客户安装NBU的时候&#xff0c;遇到了下面这个问题&#xff0c;下面的内容来至于SYMANTEC。 1&#xff0c;更新mapping文件 在原来也遇到过类型的故障&#xff0c;通过更新mapping文件后&#xff0c;故障解决&#xff0c;这次没有那么幸运了。 2&#xff0c;lsscsi…

opencv python运动人体检测

采用非极大值抑制&#xff0c;将重叠的框合并成一个。 # import the necessary packages from imutils.object_detection import non_max_suppression import numpy as np import imutils import cv2# initialize the HOG descriptor/person detector hog cv2.HOGDescriptor()…

php mysql 注入一句话木马_渗透技术--SQL注入写一句话木马原理

讲一下SQL注入中写一句话拿webshell的原理&#xff0c;主要使用的是 SELECT ... INTO OUTFILE 这个语句&#xff0c;下面是一个语句的例子:SELECT * INTO OUTFILE C:\log1.txt这样就可以把查询到的数据写入到C盘的log1.txt这个文件里面。利用这个原理我们可以把PHP的一句话木马…

java 多线程阻塞队列 与 阻塞方法与和非阻塞方法

Queue是什么队列&#xff0c;是一种数据结构。除了优先级队列和LIFO队列外&#xff0c;队列都是以FIFO&#xff08;先进先出&#xff09;的方式对各个元素进行排序的。无论使用哪种排序方式&#xff0c;队列的头都是调用remove()或poll()移除元素的。在FIFO队列中&#xff0c;所…