1:本周学习总结

1.1: 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结

2:书面作业

2.1: clone方法

2.1.1:在test1包中编写Employee类,在test2包中新建一个Test类,并在其main中新建test1包中的Employee的对象,然后使用clone方法克隆一个新对象,能否成功?为什么?

不能,因为clone是被protected修饰的,需要重写clone方法才能调用,不能被其他包随意调用。

2.1.2:如果要为自定义的类覆盖clone方法,需注意什么?

Object中clone方法:

注意点:

  1. clone的方法应设为public
  2. 覆盖clone方法时要实现Cloneable接口
  3. 调用要用super.clone()来实现

2.1.3: Object对象中的toString, equals, hashCode方法都使用public修饰,而clone方法却被protected修饰,请尝试解释原因。为什么不声明为public呢?

clone方法被protected修饰是为了安全性考虑,因为clone的拷贝是浅拷贝,对象的拷贝只是对对象的引用。Object类做不到深拷贝,因为不知道类里有哪些引用类型,所以把修饰符定义为
protected。用protected修饰clone方法,是为了让子类去重写它,实现深拷贝,防止在其他任何地方随意调用,修改对象的属性对原来的对象造成影响。

2.2:内部类

2.2.1:使用匿名类与Lambda表达式改写题面向对象2-进阶-多态接口内部类的题目7-2。请贴图关键代码与运行结果,请在运行结果中出现你的学号与姓名。

关键代码:

运行结果:

2.2.2:分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?

Comparator<Shape> shapeComparator = new Comparator<Shape>(){ @Override public int compare(Shape o1, Shape o2) { //你的代码 } };

这段代码使用匿名类,来实现接口,重写了compare的比较方法,对Shape该对象进行排序。

2.2.3:题集:6-1(匿名内部类)实验总结。你觉得使用匿名内部类有什么好处?

本题是写匿名内部类ActionListener,一开始题意没弄清,
匿名内部类一般只使用一次,使用他可以简化代码的编写,减少代码冗余,不需要多写一个类来实现。

2.3:PTA实验总结

2.3.1:PTA(自定义接口)。并回答:相比较不写接口,直接写一个类包含IntegerStack相应的方法来说,定义IntegerStack接口,然后定义其实现类这种方式有什么好处?

本题要注意判断栈的情况,是否为栈空还是栈满,才能进栈还是出栈。否则会报错。
定义一个接口,在定义实现其类,我们可以使用不同的方法来实现其类,例如可以数组形式,也可以链表的形式,相比于不写接口,直接写类,在多次去修改类的方法,接口会更加灵活,简便。

2.3.2:PTA(静态内部类)。并回答:你觉得什么时候应该使用静态内部类?静态内部类与内部类有什么区别?

本题应注意调用静态内部类的静态方法,应该是外部类.静态内部类.内部类的方法
如果创建一个内部类的对象,不需要访问外部类就可以设为静态内部类,
区别:

定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制。外部类按常规的类访问方式使用内部 类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。在定义内部类的时候,可以在其前面加上一个权限修饰符static。此时这个内部类就变为了静态内部类。
(1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。
    (2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。
    (3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

2.3.3:PTA(继承覆盖综合练习-Person、Student、Employee、Company)。并回答:使用Collections.sort对引用类型数组进行排序需要有一个什么前提条件?

Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的.要有一个List类型,例如本题的Collections.sort(personList,new Comparator());,而且应一个实现比较的接口。

本题的equals方法是个难点,要注意每个类的equal方法,不然就容易出现部分错误,显示加入元素时没有判断有无包含。

2.4:大作业-继续完善(尝试使用接口改造你们的系统)

2.4.1:现在希望将系统中购物车的操作抽象到相应的DAO接口。

2.4.2:为该接口定义至少两个实现(如数组、列表、文件)。截图自己负责部分的关键代码,要求出现名字与学号。

数组形式:

列表形式:

2.4.3:给出你们的Main程序,说明定义DAO接口的好处。


运行结果:

好处:

我们可以通过接口来编写不同的类,实现数据的不同储存形式,例如数组形式和列表形式。

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

2.5.1: 画出类的继承关系

2.5.2:main函数的代码实现什么功能?

创建了四个对象,并将他们按年龄大小进行排序

2.5.3:如果将子类中的super构造函数去掉行不行?

不行,因为子类是无法继承父类的private变量和方法,所以要用super来调用父类的构造函数。

2.5.4:PersonTest.java中哪里体现了多态?

本题编写了Student类、Employee类、Manager类、Programmer类,并对他们的toString()方法进行重写,来体现多态。

3:.码云及PTA

3.1:码云代码提交记录

3.2:截图PTA题集完成情况图


3.3:统计本周完成的代码量

周次 总代码量 新增加代码量 总文件夹 新增加文件夹
1 114 114 11 11
2 520 406 16 6
3 1089 569 22 6
5 1425 336 29 7
6 1819 394 31 2
7 2987 1168 54 23

转载于:https://www.cnblogs.com/862139498wcy/p/7733988.html

学号:201621123032 《Java程序设计》第6周学习总结相关推荐

  1. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  2. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  3. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  4. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  5. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  8. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  9. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  10. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

最新文章

  1. python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...
  2. 避免入坑:如何知道一个导师的人品?
  3. ITK:清除四边网格
  4. java_Socket简单使用方法
  5. JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼?
  6. Teams Developer Portal介绍
  7. 区块链上智能合约的讲解
  8. 胡椒“辣”味是怎样炼成的
  9. 带你体验云原生场景下 Serverless 应用编程模型
  10. 图论 —— 环与块 —— 最小环
  11. .NET Micro Framework 用户程序升级说明
  12. 新产品Wyn Enterprise 详解,立即预约公开课
  13. 【TSP】基于matlab遗传算法求解13城市旅行商问题【含Matlab源码 1255期】
  14. 最新敏感词库/违禁词检测接口,可接入文章发布
  15. SQLserver数据库被置疑了(“可疑”)状态下怎么处理?
  16. 群晖wordpress如何连接mysql,玩转群晖虚拟机:非插件安装WordPress
  17. 桑佛德大学计算机科学,桑佛德大学
  18. AI如何实现自立自强?属于百度飞桨的“耐心”
  19. Python给定两个有序整数数组nums1和nums2,合并nums1和nums2为数组nums1
  20. 2022年国内外大数据工程师薪资大比拼

热门文章

  1. python九九乘法口诀表-python 99乘法口诀表
  2. python网课百度网盘-我的“便(bian)宜”Python网课第一课
  3. python文件对象提供了3个读方法、分别是-python3基础之文件对象操作
  4. python中turtle画圆填充颜色_用Python中的画图工具turtle绘制八卦图
  5. ConfigurationClassPostProcessor设计与实现
  6. socket中select针对阻塞I/O复用注意的问题
  7. 训练指南第一部分解题报告
  8. android开发过程中的错误:the file dx.jar was not loaded from the SDK folder
  9. mysql 修改max_connections
  10. python文件压缩