1. 本周学习总结

1.1 尝试使用思维导图总结有关继承的知识点。

1.2 使用常规方法总结其他上课内容。

 (1)继承时子类将获得父类的属性与方法,并具有自身特有的属性与方法。
(2)使用super还可以访问父类被子类隐藏的同名的成员。
(3)创建子类时父类构造函数无论如何都会被调用。
(4)如果子类构造函数没有显式地调用父类的构造函数,则自动调用父类默认无参构造函数。
(5)当希望子类可以直接访问父类成员或者希望被子类覆盖的时候,使用protected进行声明。
(6)没有显式指明继承自哪个类,则默认继承自Object类。

2. 书面作业

1. 注释的应用

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

 类注释的使用方法是:

 /**

 *(要注释的内容)

 */



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

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

 雨季来临,小薇进入网上商城打算选一把雨伞。在搜索栏输入雨伞后,小薇在各种商品中选中了自己喜欢的款式,然后点击进入了该商品的详细界面,了解了该商品的各种属性后,将该商品加入了购物车,随后到购物车中,把以前加入购物车中没有需要的的商品删除后,将所要购买的商品进行了结算并付款。

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

3. ManagerTest.zip代码分析

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

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

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

 子类调用父类方法应该使用super.getSalary();

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

 调用的是Employee类的getSalary方法;

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

 直接复制粘贴虽然看起来直观,但是看起来复杂冗长;使用super调用父类的构造函数可以节省时间和空间;

4. Object类

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

 package java;

 public class Main1 {
public static void main(String[] args){
System.out.println(new Fruit());
}
class Fruit{
private String name;
}
}
可得没有extends时,直接继承Object父类,并且调用toString方法;

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

 package java;

 public class Main1 {
public static void main(String[] args){
System.out.println(new Fruit());
}
class Fruit{
private String name;
public String toString()
{
return super.toString();
}
}
}
父类中的toString方法的代码还有;只需使用super关键字就可以调用父类的toString方法。

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

 public boolean equals(Object obj) {
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Fruit other = (Fruit) obj;
if (name.equalsIgnoreCase(other.name))
return true;
}

4.4 在4.3的基础上使用ArrayList fruitList存储多个fruit,要求如果fruitList中已有的fruit就不再添加,没有的就添加进去。请编写相关测试代码。并分析ArrayList的contatins方法是如何实现其功能的?

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

5.1 画出类的继承关系

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

 显示:
Manager [bonus=12000.3, toString()=Employee [salary=90000.1, toString()=Person [name=Clark, adress=GE, phonenumber=111, email=111@mail.com, age=10, gender=mail]]]
Student [status=1, toString()=Person [name=wang, adress=110, phonenumber=15959, email=15959@163.com, age=18, gender=male]]
Employee [salary=1000.0, toString()=Person [name=zhang, adress=136, phonenumber=1360, email=1360@mail.com, age=21, gender=female]]
Programmer [allowance=50000.0, toString()=Employee [salary=100000.0, toString()=Person [name=Gates, adress=usa, phonenumber=911, email=911@com, age=59, gender=male]]]

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

 使用super构造函数,作用是为了调用父类的构造函数;不行,如果将子类中的super构造函数去掉,则会自动调用父类默认无参构造函数。

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

 多态对已存在代码具有可替换性;多态对代码具有可扩充性;
要实现多态的前提是要有继承,要有父类引用指向子类对象;

多态好处的参考链接:http://wenku.baidu.com/link?url=rZJdofF6bnq_lzhrtooBqV9bRchIjZTss8ljeIUQDM9TkVwMACUhRIAkuvx8tpsLXVcq2MZgw8KUGTz5YJmqo3386ABAIJs2FjxAxAsEEtK

3. 码云代码提交记录

4. PTA实验

 这次的代码中用到了抽象类,通过继承的关系来实现代码的复用;
在父类中定义好抽象的方法之后,才能在子类当中注意定义;
在PTA上提交代码真的真的真的要特别小心,不然分分钟编译失败或者答案错误;
使用super还可以访问父类被子类隐藏的同名的成员;
学过的知识有些难表达在代码上,可能是学习的不够深入,编写代码觉得特别困难,运用学过的东西也运用不起来;

201521123104《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. SVN 、Git、Github的使用

    1.1 SVN 总结以及使用建议 每一次保存历史记录实际上就是一次提交 什么时候去保存历史记录? 完成了一个具体的功能模块 代码运行没有bug 当天工作结束提交一次 没有 bug 的前提下去提交一次 ...

  2. Python3+迭代器与生成器

    转载Python3 迭代器与生成器 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素 ...

  3. 关于 Overtrue 的拼音库 overtrue/pinyin 为何 travis 为 error【社交系统研发日记十】

    什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).社交系统 ...

  4. 利用CSS简单布局的不同组合类型

    关于CSS布局页面的简单组合方式: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  5. 原来,负载均衡可以这样用,多核CPU可以这样用

    负载均衡作为一个处理高并发,大流量的访问的业务场景,已经几乎是常识性的知识了. 而本文的意义在于需求:由于大流量请求,导致服务无法正常响应,在不增加购买机器成本的场景下,如何提高服务器的业务处理能力? ...

  6. angular2 组件交互

    1. 组件通信 我们知道Angular2应用程序实际上是有很多父子组价组成的组件树,因此,了解组件之间如何通信,特别是父子组件之间,对编写Angular2应用程序具有十分重要的意义,通常来讲,组件之间 ...

  7. jsp中一些重要的问题

    jsp [1] 简介 > HTML - HTML擅长显示一个静态的网页,但是不能调用Java程序. > Servlet - Servlet擅长调用Java程序和后台进行交互,但是它不擅长显 ...

  8. 【Spring】装配Bean 组件扫描

    实现自动装配需要用注解:注解分为 spring规范和java规范 ,java规范需要引入javax.inject 包 ,使用maven,直接引入. 从中可以看到 @Named @Inject属于jav ...

  9. 常用路径 URL 中的斜杠与反斜杠

    常用路径中的斜杠与反斜杠... ------------------------------ 斜杠:反斜杠:======================电脑能识别的斜杠有两种:斜杠分正斜杠(forwa ...

  10. Html中<Hr>标签、样式的使用和自定义设置

    <Hr>标签中样式的使用和自定义设置... -------------------- ====================== 已经测试过了可以用的Hr样式: <!--这是一部分 ...