201521123067 《Java程序设计》第4周学习总结
201521123067 《Java程序设计》第4周学习总结
1. 本周学习总结
1.1 尝试使用思维导图总结有关继承的知识点。
1.2 使用常规方法总结其他上课内容。
●总结:
(1)在本周的学习中,我知道了在类的定义里,类名的首字母一定要大写。
(2)我学会了类注释的使用方法是:
/**
*(要注释的内容)
*/
(3)在本周的第二节课中学习了Object类,学会了覆盖equal方法。
(4)还学习到了抽象类以及抽象方法的使用格式。
2. 书面作业
(1)注释的应用:使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看。(截图)
(2)面向对象设计(大作业1,非常重要)
2.1 将在网上商城购物或者在班级博客进行学习这一过程,描述成一个故事。(不得少于50字)
故事:有一天,张同学打开了网上购物商城,在搜索栏中输入了“杯子”二字之后,再点击搜索,跳出了一个新的页面框,在其中的众多杯子中挑出了一个自己最喜欢的,点击该商品进入后宝贝详情界面后,仔细看了一遍,决定购买,然后点击加入购物车,接着进入购物车结算,在结算页面中,他核对了总计金额之后,点击了付款,并完成了此次购物。
2.2 通过这个故事我们能发现谁在用这个系统,系统中包含的类及其属性方法,类与类之间的关系。尝试找到这些类与属性,并使用思维导图描述类、属性、方法及类与类之间的关系。
答:张同学在用这个系统。
系统中包含的类有:商品和购物车。
商品类中包含的属性是名称、价格、颜色分类、基本信息、买家评价。
商品类中包含的方法是选择颜色和加入购物车。
购物车类中包含的属性是:商品名称、单价、数量、金额、合计费用。
购物车类中包含的方法是删除商品、选中商品、结算。
商品类与购物车类之间的关系:在某商品的宝贝详情页面中点击加入购物车后(使用了商品类中的加入购物车的方法),点击购物车,就进入了购物车的界面。
(3)ManagerTest.zip代码分析
分析ManagerTest.zip中的代码,回答几个问题:
3.1 在本例中哪里体现了使用继承实现代码复用?回答时要具体到哪个方法、哪个属性。
答:以下这段代码使用继承实现代码复用:
class Manager extends Employee
{
/**
* @param n the employee's name
* @param s the salary
* @param year the hire year
* @param month the hire month
* @param day the hire day
*/
public Manager(String n, double s, int year, int month, int day)
{
super(n, s, year, month, day);
bonus = 0;
}
public double getSalary()
{
double baseSalary = super.getSalary();
return baseSalary + bonus;
}
public void setBonus(double b)
{
bonus = b;
}
private double bonus;
}
在这段代码中子类Manager继承了父类Employee,用到了public Employee(String n, double s, int year, int month, int day)方法,并且用了name、salary、hireday属性。
3.2 Employee类及其子类Manager都有getSalary方法,那怎么区分这两个方法呢?
答:Employee类是父类,所以它的getSalary方法在被使用时要表示为super.getSalary(),以此来区别子类Manager中的getSalary方法。
3.3 文件第26行e.getSalary(),到底是调用Manager类的getSalary方法还是Employee类的getSalary方法。
答:调用的是Employee类的getSalary方法。因为e是Employee类的,所以e.getSalary()调用的是父类的方法。
3.4 Manager类的构造函数使用super调用父类的构造函数实现了代码复用,你觉得这样的有什么好处?为什么不把父类构造函数中的相关代码复制粘贴到Manager的构造函数中,这样看起来不是更直观吗?
答:Manager类的构造函数使用super调用父类的构造函数实现了代码复用,避免了代码的大量重复,并且能使代码简洁明了,如果代码需要修改的时候就不会那么麻烦了。把父类构造函数中的相关代码复制粘贴到Manager的构造函数中,如果需要修改代码的时候就要一直寻找相同的地方不断修改,很麻烦。
(4)Object类
4.1 编写一个Fruit类及属性String name,如没有extends自任何类。使用System.out.println(new Fruit());是调用Fruit的什么方法呢?该方法的代码是从哪来的?尝试分析这些代码实现了什么功能?
答:调用了默认的object类,object是所有类的父类,该方法的代码是来自系统默认的java.lang包中。实现的功能是:可以传递任何类型的类来使用。
4.2 如果为Fruit类添加了toString()方法,那么使用System.out.println(new Fruit());调用了新增的toString方法。那么其父类中的toString方法的代码就没有了吗?如果同时想要复用其父类的toString方法,要怎么操作?(使用代码演示)
答:父类中的toString方法的代码还在,如果同时想要复用其父类的toString方法,可以用super来调用,也可以在创建对象的时候就定义为父类的,就可以调用父类的toString方法了。
public String toString()
{
return super.toString();
}
4.3 Fruit类还继承了Object类的eqauls方法。尝试分析其功能?自己编写一个equals方法覆盖父类的相应方法,功能为当两个Fruit对象name相同时(忽略大小写),那么返回true。(使用代码证明你自己覆盖的eqauls方法是正确的)
答:equals方法的功能:用于比较两个对象是否指向同一块内存区域,相当于==运算符。
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Fruit other = (Fruit) obj;
if (name.equals(other.name))
return true;
}
4.3 Fruit类还继承了Object类的eqauls方法。尝试分析其功能?自己编写一个equals方法覆盖父类的相应方法,功能为当两个Fruit对象name相同时(忽略大小写),那么返回true。(使用代码证明你自己覆盖的eqauls方法是正确的)
答:equals方法的功能:用于比较两个对象是否指向同一块内存区域,相当于==运算符。
3. 码云代码提交记录
4. PTA实验总结
●在做PTA中的函数题第一题时,刚开始写的特别复杂,出现了编译错误,然后修改成了public String toString()就提交成功了。
●函数题的第一题和第二题难度都不是很大,第二题中只要正确理解了Object类就会做了。
●编程题的第四题需要学会运用继承的知识点,虽然理论是会了,但是在编程的时候还是不太会用,最后把代码打出来了,但是在PTA上运行不通过。
●编程题的第五题是要用到覆盖的知识,但是和做第四题的时候一样,也是在Eclipse上能运行成功,但是在PTA上运行不了。
201521123067 《Java程序设计》第4周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- jquery左右切换的无缝滚动轮播图
1.HTML结构: <head> <script type="text/javascript" src="../jquery-1.8.3/jquery. ...
- FPGA功能仿真,门级仿真,后仿真的区别
前言 分清楚各种仿真间的关系,工具采用quartus prime16.0,仿真工具采用modelsim10 ae版:项目:led_display; 流程 1.RTL行为级仿真:也叫功能仿真,这个阶段的 ...
- 前端到后台ThinkPHP开发整站(1)
1.前言: 我个人从来没有写过博客文章,作为一个程序员没有自己的博客算是一个合格的程序员,所以我地想想也要经营起一个的博客,做一个小项目,写这博客算就做这个项目的一个项目笔记吧!现在自学着ThinkP ...
- Linux学习总结(十一)—— Linux常用命令:版本信息查看(RedHat、CentOS、Debian、Ubuntu、Fedora、Oracle)
这篇文章收集了CentOS.Oracle.RedHat等系统查看发行版本.内核版本.位数的方法,欢迎补充. 系统 发行版本 -- 内核版本.位数 RedHat cat /etc/issue cat / ...
- Python - Seaborn可视化:图形个性化设置的几个小技巧
1 概述 在可视化过程中,经常会对默认的制图效果不满意,希望能个性化进行各种设置. 本文通过一个简单的示例,来介绍seaborn可视化过程中的个性化设置.包括常用的设置,如: 设置图表显示颜色 设置图 ...
- 腾讯织云:DevOps 流水线应用平台践行之路
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:梁定安,腾讯织云负责人,目前就职于腾讯社交网络运营部,任运维技术总监,开放运维联盟委员,腾讯云布道师,腾讯课堂运维讲师,EXIN D ...
- <当幸福来敲门>之一些很喜欢的台词收藏
<当幸福来敲门> ================ ================
- Educational Codeforces Round 27 补题
题目链接:http://codeforces.com/contest/845 A. Chess Tourney 水题,排序之后判断第n个元素和n+1个元素是不是想等就可以了. #include < ...
- 打印1到最大的n位数-Java
在练习剑指offer的时候,第12题打印1到最大的n位数的时候,想找个java版的,但大家要么用BigInteger做,要么给出其他的方法.我觉得要给就给最好的方法,下面是我自己参考C++代码写的ja ...
- python进阶学习(三)
本节通过SQLite了解数据库操作 ------------------------- 数据库支持 使用简单的纯文本只能实现有退限的功能,所需要引入数据库,完成更强大的功能,本节使用的简单数据库SQL ...