20175310 《Java程序设计》第6周学习总结

本周博客:

《20175310 类定义 - 20175310xcy - 博客园 》https://www.cnblogs.com/xicyannn/p/10653168.html

《20175310结对编程项目-四则运算 阶段总结博客 - 20175310xcy - 博客园 》https://www.cnblogs.com/xicyannn/p/10634482.html

教材学习内容总结

这周学习了第七章和第十章,主要内容如下:

第七章:

1.学习了类的另一个成员:内部类,包含内部类的类叫内部类的外嵌类。

2.内部类和外嵌类的关系:

①外嵌类的成员变量在内部类中仍然有效,内部类的方法也可调用外嵌类的方法

②内部类不可以声明变量和类方法,外嵌类可以用内部类声明对象以作为外嵌类成员

③内部类仅供他的外嵌类使用

3.外嵌类的成员变量在内部类中仍然有效,使得内部类和外嵌类的交互更加方便

第十章:

程序在运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流。输入流的指向称为它的源,程序通过输入流读取源中的数据。另一方面,程序在处理数据后,可能需要将处理的结果写入到永久的存储媒介中或传送给其他的应用程序,这就需要使用输出流。输出流的指向称为它的目的地,程序通过输出流把数据传送到目的地。虽然IO流经常与磁盘文件存取有关,但是源和目的地也可以是键盘、内存或显示器窗口。

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

  • 问题1:

    书上319页第十章课后习题回答错误

  • 问题1解决方案:

    根据答案提示,这里应用到了10.3的知识点,应该用FileOutputStream类实现文件字节输出流。

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

  • 问题2:

    在完成结对项目时遇到了问题,表达式是一个数字一个运算符独立输出的,因此在系统看来表达式并不是一个整体
  • 问题2解决方案:

    通过字符串拼接的方式将生成的随机数和运算符读取到字符串Question中:
String Question = new String("");   //系统随机生成的表达式
for (int j=1;j<=a+1;j++) {
int b = random.nextInt(10) ; //生成0到9之间的随机数b,表示表达式中出现的随机数,共a+1个
System.out.print(b); //将生成的随机数输出
if (j <= a) {
fuhao k = new fuhao(); //声明类fuhao的对象k
char q = k.yunsuanfu(); //产生一个运算符q
System.out.print(q); //将生成的随机符号输出
Question = Question + b +q; //将生成的随机数和随机符号存入Question中
}
else{
Question = Question + b; //将生成的随机数存入Question中
}
}
  • 问题3:

    在完成类定义作业时,不会覆盖equals方法
  • 问题3解决方案:

    equals方法的重写之前没有学过,书上的和之前做的练习主要都是讲怎么用equals方法,对于怎么重写没有提到。我在网上参考了《重写equals方法》这篇博客,完成了这部分的代码:
public boolean equals(Object obj) {    //覆盖了父类Object中的equlas方法。
if (this == obj) //判断是否为同一对象
return true;
if (obj == null ) //判断是否为空
return false;
if (getClass() != obj.getClass()) //判断是否属于同一个类
return false;
Book book = (Book) obj; ////如果类型相同,比较内容
if (bookName == null) {
if (book.bookName != null)
return false;
} else if (!bookName.equals(book.bookName))
return false;
if (author == null) {
if (book.author != null)
return false;
} else if (!author.equals(book.author))
return false;
if (press == null) {
if (book.press != null)
return false;
} else if (!press.equals(book.press))
return false;
if (pubDate == null) {
if (book.pubDate != null)
return false;
} else if (!pubDate.equals(book.pubDate))
return false;
return true;
} public int hashCode() { //重写hashcode
final int prime = 31;
int result = 1;
result = prime * result + ((bookName == null) ? 0 : bookName.hashCode());
result = prime * result + ((author == null) ? 0 : author.hashCode());
result = prime * result + ((press == null) ? 0 : press.hashCode());
result = prime * result + ((pubDate == null) ? 0 : pubDate.hashCode());
return result;
}

这里需要注意的一点是:在这篇博客里,作者有提到重写equals方法一定要重写hashcode方法。因为散列码(hashcode)是由对象导出的一个整数值,它是没有规律的。每个对象基本上对应唯一的一个散列码。因此重写equalshashcode定义必须一致:如果a.equals(b)返回true,那么a.hashcode()b.hashcode()必须具有相同的值。

代码托管

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 6/6 2/2 30/30
第二周 625/631 3/5 35/65
第三周 660/1291 2/7 38/103
第四周 972/2263 2/9 30/133
第五周 399/2662 3/12 32/165
第六周 1342/4004 3/15 35/200

20175310 《Java程序设计》第6周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. oppo手机屏幕录制的详细操作技巧

    说起屏幕录制,肯定我们都使用过各式各样的录屏工具,不管是手机或者电脑自带的,还是第三方录屏工具,是不是都出现过不能正常录屏的,或者没有把声音录制下来等一系列问题,为了给更多的人节约时间,因为笔者使用的 ...

  2. 如何用ABP框架快速完成项目(7) - 用ABP一个人快速完成项目(3) - 通过微服务模式而不是盖楼式来避免难度升级和奥卡姆剃刀原理

    这节文章十分重要!十分重要!十分重要!   很多同学在使用ABP的过程中遇到很多问题, 花费了很多时间和精力都还无法解决, 就是卡在这节文章这里.   Talk is cheap, just show ...

  3. C# 利用SharpPcap实现网络包捕获嗅探

    本文是利用SharpPcap实现网络包的捕获的小例子,实现了端口监控,数据包捕获等功能,主要用于学习分享. 什么是SharpPcap? SharpPcap 是一个.NET 环境下的网络包捕获框架,基于 ...

  4. 快速开发跨平台应用之Xamarin技术

    Xamarin 介绍 Xamarin 是一个允许开发人员有效创建可跨 iOS.Android.Windows 应用程序的开发工具集.Xamarin是免费且开源的,遵循 MIT (麻省理工学院许可证)协 ...

  5. python爬虫从入门到放弃(九)之 Requests+正则表达式爬取猫眼电影TOP100

    import requests from requests.exceptions import RequestException import re import json from multipro ...

  6. AIOps背景/所应具备技术能力分析(上)

    本文篇幅较长,分为上,中,下,三个部分进行连载.内容分别为:AIOps 背景/所应具备技术能力分析(上),AIOps 常见的误解(中),挑战及建议(下). 前言 我大概是 5,6 年前开始接触 ITO ...

  7. 完全数java

    完全数:小于本身的所有因子的和(包括1) public class test01 { public static void main(String[] args) { Scanner scanner= ...

  8. 利用python搭建Powersploit powershell脚本站点

    powershell脚本站点的搭建 一.Powersploit Powersploit是一款基于powershell的后渗透(Post-Exploitation)框架,集成大量渗透相关模块和功能. 下 ...

  9. LeetCode算法题-Delete Node in a Linked List(Java实现)

    这是悦乐书的第197次更新,第204篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第60题(顺位题号是235).编写一个函数来删除单链表中的节点(尾部除外),只允许访问该 ...

  10. C语言 实现逆置功能

    C语言 实现逆置功能 //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 字符串的逆置 方法1:利用数组 #include<stdio.h> ...