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周学习总结的更多相关文章

  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. 网站pv统计脚本

    在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量.总带宽.ip统计和url统计等.虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了像每日PV,带宽,ip统计等数 ...

  2. PL/SQL 编程(一)基础,变量,分支,循环,异常

    SQL和PL/SQL: SQL 结构化查询语言(Structural Query Language),是用来访问和操作关系型数据库的一种标准通用语言,属于第四代语言(4GL).可以方便的调用相应语句来 ...

  3. jQueryGantt与DHTMLX-Gantt的对比

    对比内容|jQueryGantt|DHTMLX-Gantt 本地化(语言)|封装了语言包,(仅英语)要想改变要重新编写|支持多种语言包,并且形成了完整的css文件 皮肤|只有一套现成的皮肤,逍遥该表喲 ...

  4. iOS 10 UserNotification框架解析 – 本地通知

    iOS 10以前的通知比较杂乱,把本地通知和远程通知分开了,诞生了许多功能类似的API,很容易让初学者犯迷糊.而iOS 10的通知把API做了统一,利用独立的UserNotifications.fra ...

  5. Bresenham画椭圆算法

    这里不仔细讲原理,只是把我写的算法发出来,跟大家分享下,如果有错误的话,还请大家告诉我,如果写的不好,也请指出来,一起讨论进步. 算法步骤: (1) 输入椭圆的长半轴a和短半轴b. (2) 计算初始值 ...

  6. 程序员/PM怎么让项目预估的时间更加准确

    项目时间的估算对项目的成败至关重要.项目时间管理包括了项目按时完成所需的各个过程.但是,在实际项目中,经常出现项目延期,估算严重不准确的现象. 一个我曾经共事过的很有经验的项目经理曾宣称说,他会拿程序 ...

  7. WPF控制动画开始、停止、暂停和恢复

    1.闲言 好久也没更新一博客了,自己有点发懒,同时确实这几个月来也有点忙.风机监测软件,项目中,有这样一个小需求:正常风机在旋转的时候,上位机软要做一个风机的图片,让它不停地旋转,一但检测到下面风机停 ...

  8. centos下安装jenkins

    To use this repository, run the following command: sudo wget -O /etc/yum.repos.d/jenkins.repo https: ...

  9. 纹理混合遇到的问题 pre-multiplying OpenGL Android iOS

    纹理混合遇到的问题 pre-multiplying OpenGL Android iOS Alpha-blending pre-multiplying of texture OpenGL Androi ...

  10. mysql排序

    MySQL里desc和asc的意思    desc是descend 降序意思     asc 是ascend 升序意思    sql = "select 表内容名    from   数据库 ...