zoukankan      html  css  js  c++  java
  • 作业03-面向对象入门

    1. 本周学习总结

    初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识点组织起来。请使用工具画出本周学习到的知识点及知识点之间的联系。步骤如下:
    1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装
    1.2 用思维导图将这些关键词、关键概念组织起来。注意:一般来说不要在导图中写太多字。

    参考资料:

    XMind
    如何使用XMind

    2. 书面作业

    1.以面向对象方式改造数据结构作业“有理数”(重点)

    注意:属性必须为private
    1.1 截图你主要代码(需要在程序中出现你的学号姓名)并粘贴程序的git地址。
    1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?
    参考资料:

    有理数C语言例程下载
    BigDecimal类的代码,尤其是其中的方法设计。

    2. 构造函数与初始化块

    2.1 结合PTA(构造函数与toString)说明构造函数有什么用?其形式有何特征?
    2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
    2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。
    2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?如果建立过个对象,静态初始化块会执行几次?

    3.代码分析:Math类

    3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
    3.2 如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。
    3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)

    4. 重载Overload

    4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
    4.2 在java.lang.Math类中举出1个方法重载的例子?

    5. 代码阅读: final

    final修饰的变量不能改变,为什么如下代码却可正常运行?
    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;

    6. Java8中的时间日期类:编写函数public static boolean isMondayToFriday()

    功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。
    截图:关键代码。
    提示:使用LocalDateTime, DayOfWeek类
    参考资料:

    JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf
    Java8DateTimeTest.java

    7. 封装

    7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?**
    7.2 和封装有关的关键字有哪些?

    8. 结对编程实践(未完成本次作业得0分)

    找一个水平相近的同学完成1-2题实验题。开始编程前,可先对内容进行讨论。
    写出体验报告,包括以下内容:1.对方姓名。2.所完成的题目。3.使用结对这种方法进行编程的感想(非实验总结)。4.照片(上次很多同学并未贴照片,请贴上)

    9. 选做:使用阿里巴巴静态代码扫描工具 扫描自己的代码

    9.1 简述自己代码中在规范方面出现的问题
    9.2 如何解决这些问题

    10. 选做:Runnable Jar

    我们以前编写的程序,必须打开Eclipse或者将相应的.class文件拷贝出来在命令行下执行相应命令才能运行,如果.class文件较多且类文件中有包名,需要将完整的目录结构及文件拷贝出来,才能运行。现在希望将Eclipse项目中的Java文件打成一个可运行的jar包,在命令行直接运行。改造题目6,使其从命令行接收参数,参数为年-月-日,如1999-09-09。最后将项目打成可运行的jar包,然后在命令行通过java -jar 运行,并截图。参考文件如下:

    Eclipse生成Runnable jar

    3. 码云及PTA

    3.1. 码云代码提交记录

    • 在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    3.2 截图PTA题集完成情况图

    本周完成(构造函数与toString,构造函数与初始化块,形状)
    需要有两张图(1. 排名。2.提交列表)

    3.3 统计本周完成的代码量

    需要将每周的代码统计情况融合到一张表中,可使用最新版的代码统计工具的-history参数,详细用法见项目wiki地址。表格如下所示:

    周次 总代码量 新增代码量 总文件数 新增文件数
    1 200 200 3 3
    2 500 300 7 4
    3 600 100 8 1

    参考文件:

    第3周作业参考文件

    其他:
    5. 阅读代码EmployeeTest.java,回答:
    5.1 为什么Employee类的属性应设置为private?你觉得设置为public好不好,为什么?
    5.2 为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴关键代码)
    5.2 为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。(粘贴代码)

  • 相关阅读:
    树形数据深度排序处理示例(递归法).sql
    12种JavaScript MVC框架之比较
    逐级汇总示例(用户定义函数法).sql
    名次查询的处理示例.sql
    实现删除指定结点及所有子节点的处理触发器.sql
    memcpy和memmove的区别
    据说是月薪2W的笔试题
    C++重点知识
    Java初学者需掌握的30个概念
    (转)微软面试题
  • 原文地址:https://www.cnblogs.com/zhrb/p/8978557.html
Copyright © 2011-2022 走看看