201621123075 week06-接口、内部类

201621123075 week06-接口、内部类

大家好,又见面了,我是全栈君。

1.本周学习总结

1.1 面向对象学习暂告一段落,请使用思维导图,以封装、继承、多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结。
注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。
注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。
1120964-20171027160410711-1374540332.png
1.2 可选:使用常规方法总结其他上课内容。

  • final修饰的属性和变量的值不会改变
  • 重载指的是类名相同但参数不同

    2. 书面作业

1. clone方法

1.1 在test1包中编写Employee类,在test2包中新建一个Test类,并在其main中新建test1包中的Employee的对象,然后使用clone方法克隆一个新对象,能否成功?为什么?
不能成功。理由:因为Object.clone()中是“Protected”,它是无法被其他类访问的。
1.2 如果要为自定义的类覆盖clone方法,需注意什么?
首先要实现Cloneable接口,然后调用super.clone。
1.3 Object对象中的toString, equals, hashCode方法都使用public修饰,而clone方法却被protected修饰,请尝试解释原因。为什么不声明为public呢?
使用protected修饰可以保护成员,而public完全公开。使用protected可以保护其他类使用clone的方法和变量

2. 内部类

2.1 使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目7-2。请贴图关键代码与运行结果,请在运行结果中出现你的学号与姓名。
1120964-20171027202630242-1083061955.png
1120964-20171027202649883-524812543.png
1120964-20171027203747820-684414138.png
1120964-20171027202544430-1568262592.png

2.2. 分析下列代码,回答shapeComparator所指向的对象与Comparator接口有什么关系?
Comparator<Shape> shapeComparator = new Comparator<Shape>() { @Override public int compare(Shape o1, Shape o2) { //你的代码 } }
shapeComparator重写实现了Comparato的接口,
2.3 题集:6-1(匿名内部类)实验总结。你觉得使用匿名内部类有什么好处?

  • 直接new一个新的ActiongListenner,然后再里面for循环写出这个方法
  • 好处:不用再用另一个类来写方法代码,节约时间

    3. PTA实验总结

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

  • 要使用interface定义接口才能用implements实现它
  • 那个栈的操作方法还是没用好,这题还是没通过。
  • 好处:定义成接口可以用多种方法,多种形式去实现它。
    3.2 PTA(静态内部类)。并回答:你觉得什么时候应该使用静态内部类?静态内部类与内部类有什么区别?
  • 当内部类和外部类有所联系的时候,就可以使用静态内部类
    区别:
  • 静态内部类有静态属性或方法
  • 静态内部类可以访问外部类的静态成员和方法,内部类可以访问外部类所有的成员和方法
    3.3 PTA(继承覆盖综合练习-Person、Student、Employee、Company)。并回答:使用Collections.sort对引用类型数组进行排序需要有一个什么前提条件?
    实验总结:
  • 子类继承父类用super.()复用代码
  • equals的方法写不出来
    前提条件:
  • 实现比较的接口并重写它的方法

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

参考Case-StudentDao.zip案例
假设在不同的实现中,购物车里的商品有的是存放在ArrayList,有的是存放在数组中。
4.1 现在希望将系统中购物车的操作抽象到相应的DAO接口。
1120964-20171028120759555-960645777.png

4.2 为该接口定义至少两个实现(如数组、列表、文件)。截图自己负责部分的关键代码,要求出现名字与学号。
我写的数组实现:
1120964-20171028120856164-2145021590.png
同伴写的列表实现:
1120964-20171028120935133-1466313249.png

4.3 给出你们的Main程序,说明定义DAO接口的好处。
1120964-20171028125136023-610030006.png
Dao好处:
可以用多种方法其实现它的功能,并且便于修改内容。很容易看到接口实现的功能

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

5.1 画出类的继承关系
1120964-20171028130257961-1696409687.png

5.2 main函数的代码实现什么功能?
创建了Employee、student、Programmer、Mannager四个对象,对他们进行排序,最后输出
5.3 如果将子类中的super构造函数去掉行不行?
不行,子类用super函数继承父类的属性及方法
5.4 PersonTest.java中哪里体现了多态?
Person类、Student类、Employee类还有Manager以及Programmer类都具有不同形式的toString体现了多态性
参考链接:

PersonTest.java

3.码云及PTA

题集:jmu-Java-04-面向对象2-进阶-多态接口内部类

3.1. 码云代码提交记录

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

3.2 截图PTA题集完成情况图

需要有两张图(1. 排名图。2.PTA提交列表图)
1120964-20171028132456367-1458021922.png

1120964-20171028132447086-510773050.png

3.3 统计本周完成的代码量

需要将每周的代码统计情况融合到一张表中。

周次 总代码量 新增代码量 总文件数 新增文件数
1 0 0 0 0
2 265 265 9 9
3 326 61 8 -1
4 0 0 0 0
5 187 187 6 -2
6 209 22 6 0
7 174 -35 4 -2

1120964-20171028132311508-606065580.png

转载于:https://www.cnblogs.com/xjm123456/p/7745101.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108077.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月7日 下午10:00
下一篇 2022年3月7日 下午11:00


相关推荐

  • 用matlab绘制线性分段函数图像[通俗易懂]

    用matlab绘制线性分段函数图像[通俗易懂]假设线性分段函数如下所示在matlab中建立m文件:输入以下代码:x=0:0.01:5;y=zeros(size(x));fori=1:length(x)ifx(i)<0.9y(i)=0;elseifx(i)>=0.9&&x(i)<4.34y(i)=29.0698.*x(i)-26.1628;elsey(i)=100;endend

    2022年5月20日
    60
  • phpstorm 激活码3月最新在线激活

    phpstorm 激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    48
  • 关于净推荐值(NPS)的理解

    关于净推荐值(NPS)的理解NPS在产品领域用来衡量用户对产品体验的评价情况,同时也可以用在某个员工在公司受到大家的评价情况,类似等等。本文将主要关注在产品领域。如何衡量你的用户对产品的使用满意度呢?NPS就是一个非常重要的标准。那么,如何搭建NPS模型,利用NPS指标更加直观、具体地完成用户调研呢?以下,笔者将详细为大家讲述。现在几乎所有的互联网公司,都会说:“以用户为中心”,那到底是什么以用户为中心?…

    2022年4月28日
    75
  • Java 生成二维码_二维码生成规则

    Java 生成二维码_二维码生成规则利用Java生成二维码生成二维码的依赖下载:点击下载代码:packagecom.shuai.test02;importcom.swetake.util.Qrcode;importjavax.imageio.ImageIO;importjava.awt.*;importjava.awt.image.BufferedImage;importjava.io.File;importjava.nio.charset.StandardCharsets;publicclas

    2025年6月23日
    2
  • java开发webservice接口_webservice接口的开发和调用

    java开发webservice接口_webservice接口的开发和调用一、WebService的开发手段使用Java开发WebService时可以使用以下两种开发手段1、使用JDK开发(1.6及以上版本)2、使用CXF框架开发(工作中)二、使用JDK开发WebService2.1、开发WebService服务器端1、定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所有方法,如下所示:1package…

    2022年7月16日
    22
  • 卸载OpenClaw成了生意 这波全民养龙虾的奇葩故事

    卸载OpenClaw成了生意 这波全民养龙虾的奇葩故事

    2026年3月14日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号