1. 本周学习总结

2. 书面作业

1.注释的应用

使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看。(截图)

参考文章

Eclipse添加注释简介

Eclipse注释模板设置详解

答:进行注释主要有两种方法:

1.一种是老师上课用到的手动注释再运用一些标签



显然这样有些麻烦。有没有自动生成的办法呢?回答是有的。

2.把光标放在要注释的类或方法上,按快捷键alt+shift+jor source》Generate Element Comment,但是这样的注释格式是系统默认的较为粗暴简单,没关系我们还可以自己进行格式修改。

打开:Window->Preference->Java->Code Style->Code Template 然后展开Comments节点,选中你要添加注释的类型,然后点击edit



在pattern里按“ctrl“+”/”键,选择要添加的种类,例如日期,作者、时间、返回类型等等……

设置好以后,会在上图的pattern下生成相应代码



现在用方法二来对之前写过的类和方法进行注释

对Rectangle类进行注释

对setname方法进行注释

对getPerimeter方法进行注释

2.面向对象设计(大作业1,非常重要)

2.1将在网上商城购物或者在班级博客进行学习这一过程,描述成一个故事。(不得少于50字,参考QQ群中PPT的范例)

答:最近在学习java,决定上当当网上买一些参考书,在搜索栏输入java,就会出现8050本有关java的书籍,点击一本查看具体信息,有书名、作者、价格、出版社、出版日期还有简介,觉得这本书不错加入购物车,想多了解一下这个作者的其他书籍,点击作者弹出一个界面显现作者其他的书籍,又选了一本加入购物车。点击购物车,就会看到刚刚选中的书本,发现总价有点贵,打算先买最想要的那本,点击删除了一本书。点击结算,弹出订单界面要求输入收货地址,提交订单,支付。

2.2通过这个故事我们能发现谁在用这个系统,系统中包含的类及其属性方法,类与类之间的关系。尝试找到这些类与属性,并使用思维导图描述类、属性、方法及类与类之间的关系。

答:如图

2.3尝试使用Java代码实现故事中描述的这一过程(不必很完善),将来要在这个基础上逐渐完善、扩展成一个完整的面向对象的系统。(可选:加分)

参考资料:

UML类图

面向对象案例-借款者姓名地址.zip

3.ManagerTest.zip代码分析

分析ManagerTest.zip中的代码,回答几个问题:

3.1 在本例中哪里体现了使用继承实现代码复用?回答时要具体到哪个方法、哪个属性。

答:Manager类 extends Employee类,

复用的方法:



图中super可知服用了父类的



复用的属性:

3.2 Employee类及其子类Manager都有getSalary方法,那怎么区分这两个方法呢?

答:用super来区分getSalary(),super.getSalary()是父类的。

3.3 文件第26行e.getSalary(),到底是调用Manager类的getSalary方法还是Employee类的getSalary方法。

答:ppt中有这样一句话

对于子类重写的方法,JVM根据调用该方法的实际对象的类型来决定选择调用哪个方法。

现在我们具体分析所给材料:



可知对于staff[0]调用的是Manager的getSalary方法,staff[1]、[2]调用的是Employee中的getSalary方法。

3.4 Manager类的构造函数使用super调用父类的构造函数实现了代码复用,你觉得这样的有什么好处?为什么不把父类构造函数中的相关代码复制粘贴到Manager的构造函数中,这样看起来不是更直观吗?

答:我们使用继承就是为了避免代码的冗长,用super可是使代码变得更叫简洁而且提高了代码的效率,学到目前尚未发现用super有什么坏处。

4.Object类

4.1 编写一个Fruit类及属性String name,如没有extends自任何类。使用System.out.println(new Fruit());是调用Fruit的什么方法呢?该方法的代码是从哪来的?尝试分析这些代码实现了什么功能?

答:这种题目就放到eclipse里试一下



结果显示:



如过没有继承任何类,则继承的是Object类,Object类是所有类的父类,Fruit调用的是Object本身的toString方法。

查看Object本身的toString方法的源代码:



输出对象所属的类名和散列码。

4.2 如果为Fruit类添加了toString()方法,那么使用System.out.println(new Fruit());调用了新增的toString方法。那么其父类中的toString方法的代码就没有了吗?如果同时想要复用其父类的toString方法,要怎么操作?(使用代码演示)

答:用eclipse自动生成一个toString方法,如果要用父类的toString方法,可以用super这个关键字



结果为:

4.3 Fruit类还继承了Object类的eqauls方法。尝试分析其功能?自己编写一个equals方法覆盖父类的相应方法,功能为当两个Fruit对象name相同时(忽略大小写),那么返回true。(使用代码证明你自己覆盖的eqauls方法是正确的)

答:查看源代码



Object类中equals方法用来判断两个对象是否具有相同的引用。

然而,对多数类来说这种判断意义不大。

所以子类经常覆盖其equals方法,对其内容进行比对。

编写equals有两种方法一种可与用eclipse自动生成但是它还需要稍微的修改一下,不然不会忽略大小写,另一种就是自己编写啦

public boolean equals(Object object) {
if (this == object)
return true;
if (!(object instanceof Fruit))
return false;
Fruit fruit = (Fruit) object;
if (this.name == null) {
if (fruit.name != null)
return false;
} else if (!this.name.equalsIgnoreCase(fruit.name))
return false;
return true;
}

运行结果

5.代码阅读:PersonTest.java(abstract、多态)

5.1 画出类的继承关系

5.2 读懂main函数,将自己推测的出代码运行结果与真正运行结果进行比较。尝试分析原因

答:运行不出来

那就说说自己的分析结果

创建一个长度为4的Person数组,age升序

Student类和Employee类是继承自Person类,而Manager类和Programmer类是继承自Employee类的,

那么Manager类和Programmer类有两成嵌套

5.3 子类中里面使用了super构造函数,作用是什么?如果将子类中的super构造函数去掉,行不行?

答:super构造函数是调用了父类的构造函数,不可以,会出现错误,因为去掉super本来可以调用父类的无参构造函数,但是没有无参构造函数所以会出现错误

5.4 PersonTest.java中的代码哪里体现了多态?你觉得多态有什么好处?多态和继承有什么关系吗?

答:这里体现了多态



如果说我觉得多态有什么好处,一时半会好像还说不上来,可能是更灵活,代码不会显的太过冗长,提高代码效率等,查查资料发现那些讲的概念对我来说还是有些抽象,继续学习吧

多态来自继承,是继承的发展,继承是子类继承父类,而多态是父类的引用可以调用子类的对象。

参考文件:PersonTest.java

3. 使用码云管理Java代码

4. 实验总结

题目集:jmu-Java-03-面向对象1-基础-封装继承 中的

函数(4-1, 4-2, 4-3,4-4较难选做)

编程(5-4, 5-5, 5-6)

这次题目看起来有点多,但是认真去做还是发现不会特别难,
1.都是对新学的内容的巩固,这题用到了继承,可以抽象一个类,然后运用sumAllArea和sumAllPerimeter方法。
2.这题按照题目要求认认真真一步一步下来就好,其中eclipse可生成很多的代码节省了不少时间,然后对contain方法也进一步熟悉,但是输出格式还是有些问题,比如eclipse自动生成的是按照属性从上到下的顺序,但是如果我编写的时候没有按照输出的格式编写就会导致输出错误。这个问题还是比较难发现的,所以要小心。
3.没什么大问题,就是对覆盖的熟悉吧,慢慢做,一步一步来。

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

  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. 阅读:DBA们不得不知的数据库硬件RAID常识

    对于数据库这种特殊应用IOPS往往会成为瓶颈,突破的这个瓶颈的有效方法不多,软件方面主要是读写分离,垂直拆分,分区表技术,cluster.硬件方面主要是raid,和SSD. 通常都是软件和硬件同时优化 ...

  2. leetcode First Bad Version(二分查找)

    You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...

  3. JackSon将java对象转换为JSON字符串

    JackSon可以将java对象转换为JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的writeValueA ...

  4. Vue过渡效果之JS过渡

    前面的话 与CSS过渡不同,JS过渡主要通过事件进行触发.本文将详细介绍Vue过渡效果之JS过渡 事件钩子 JS过渡主要通过事件监听事件钩子来触发过渡,共包括如下的事件钩子 <transitio ...

  5. node.js之require

    1.require.resolve('./testModeule.js')在REPL运行环境下输入,可以查询到当前目录下textModeule.js模块文件的完整文件名 2.require.cache ...

  6. HTML基础进阶

    [toc] HTML表单 form标签 <form> 标签代表一个表单,表单用于向服务器传输数据. 标签能够包含 <input> ,可以是文本字段,复选框,单选框或提交按钮等. ...

  7. Mvc数据验证总结

    Mvc提供模型级数据验证 一.服务端验证: ModelState.IsValid ModelState.AddModelError("Name", "错误提示" ...

  8. python中的collections.namedtuple

    简介 collections.namedtuple是一个工厂方法,它可以动态的创建一个继承tuple的子类.跟tuple相比,返回的子类可以使用名称来访问元素. 使用方法 用一个例子来介绍: > ...

  9. C语言排序

    排序算法 快速排序 C语言快速排序qsort(数组,长度,元素大小,cmp函数(*,*))//注意函数cmp的参数为指针 #include <stdio.h> #include <s ...

  10. 如何在环境变量里配置tomcat

    安装好后,配置环境变量:计算机--右击--属性--高级系统设置设置--环境变量 4 新建系统变量 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0(这个 ...