1. 本周学习总结

1.代码阅读:Child压缩包内源代码

1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。



因为i在类中是private,不能被外调用,因为有geti()方法定义的i,可调用这个。



因为第一个 c.getParenti();i没有被重新初始化。所以是1。c.getParentj();`输出父类的j,k=2.所以输出2

Other.showParentj(p);输出父类的i和j,且被static关键字修饰的方法不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

1.2 另外一个包中的OutOfParentPackage.java,能否编译通过?提示什么错误?分析原因。



Parent类前面没有任何访问指定词,所以默认是包访问权限,需加public

1.3 回答:如果为了访问到protected修饰的属性或方法应该怎么办?

改为同类或扩大权限。

2.abstract进阶:阅读GuessGame抽象类的设计与使用源代码

2.1 Guess改造前代码很简单,而改造后的代码使用了抽象类、抽象方法看起来很复杂,那这样的改造到底有什么好处呢?

这样可以提高代码的适用范围,使其成为一个模块可以提高他的移植性,可以用多方式操作。

2.2 如果想将该游戏改造成图形界面,应该进行一些什么操作?

用图形界面的类使用上面的抽象类,并重写关于输入输出的函数使其适合图形界面。

2.3 结合该例子,你觉得什么时候应该使用abstract

除通用的主体函数,比如输入输出这类在不同平台写法不同的用abstract。某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法用到abstract

2.4 重要:在这个例子中,变化的是什么,不变的是什么?尝试结合abstract、继承等概念进行说明。

变化的是环境,不变的是抽象类和主体函数,而我们根据环境的不同来具体决定到底使用何种输入输出方法,这就需要重写抽象类。不是抽象类去实现抽象类的抽象方法。这个实现的过程就是继承,继承抽象类的方法,然后通过复写的形式来具体实现方法的细节。

3.Comparable与Comparator

3.1 描述Comparable接口的用途。为什么某个类实现了Comparable接口就可以直接使用Arrays.sort对其进行排序?

此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序

因为Arrays.sort只能对基本数据类型排序,非基本类型的只有其对象实现了conparable才能进行排序。

3.2 有了Comparable接口为什么还需要Comparator接口呢?

类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。

3.3 可选:使用匿名内部类、Lambda表达式实现PTA编程5-2。

4.1 画出类关系图,描述每个类与接口的作用。



Student类:属性只有String name;方法有:getName()、setName()、toString()和构造函数,是StudentDaoArrayImpl类和StudenDaoListImpl类的父类。

StudentDaoArrayImpl类:用数组来存放学生信息,有构造函数,具体实现StudentDao接口的三个抽象方法。用Array的具体方法来完成相应操作。

readStudent(String) 读取学生信息,如果找不到返回null。

diplayAllStudent()遍历整个数组,没找到学生信息返回false,对象为非空则输出学生信息。

writeStudent(Student )添加学生信息,添加成功返回true。

StudenDaoListImpl类:用列表来存放学生信息,有构造函数,具体实现StudentDao接口的三个抽象方法。用ArrayList的具体方法来完成相应操作。

StudentDao接口:提供三个抽象方法,写入学生数据、读取学生数据和显示所有学生信息。

4.2 StudenDaoListImpl与StudentDaoArrayImpl有何区别?

StudenDaoListImpl是用ArrayList实现的,而StudentDaoArrayImpl是用数组实现的.

5.什么是面向接口编程?面向接口编程的好处是什么?

接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念

接口是在一定粒度视图上同类事物的抽象表示。

接口的好处就是可以不用提供实现细节,而只是提供该接口应该具备怎样的行为,或者说具有什么方法. 增加可移植性

3.1. 码云代码提交记录

3.2 PTA实验总结

这题主要问题是实现Comparable接口,实现先对name升序排序,如果name相同则对age进行升序排序。因为要用Arrays.sort进行排序,所以要有覆盖compareTo()的方法,

第二题comparto使用returne 方法

201521123030《Java程序设计》第5周学习总结的更多相关文章

  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. 【HOSTS相关】前端提供测试模板地址

    在测试接口的时候,首先需要绑定HOSTS,这个文件的位置在这个目录的下面:C:\WINDOWS\system32\drivers\etc,打开hosts文件的方式选择"记事本"就可 ...

  2. JAVASCRIPT 调用 其他应用程序的方法

    在上一篇中就已经提供了一种方法,就是通过自己写OCX 给OCX 传入路径,通过OCX 启动应用程序.当然这种方法可扩展性很多,不一定是启动应用程序了.今天提供另一种比较简单的可以启动应用程序的方法,不 ...

  3. python中类的属性(class attribute)的解释

    python中的类叫 class object,类的实例叫instance object. 类 Class Objects 类拥有两种操作,1.类属性 attribute references 2.实 ...

  4. Oracle SQL优化[转]

    Oracle SQL优化 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化 ...

  5. MySQL中的完整性约束

    对于已经创建好的表,虽然字段的数据类型决定所能存储的数据类型,但是表中所存储的数据是否合法并没有检查. MySQL支持的完整性约束: NOT NULL                 约束字段的值不能 ...

  6. webgl自学笔记——矩阵变换

    这章主要探讨矩阵,这些矩阵代表了应用在我们场景上的变换,允许我们移动物体.然而在webGL api中并没有一个专门的camera对象,只有矩阵.好消息是使用矩阵来取代相机对象能让webgl在很多复杂动 ...

  7. rtems在mini2440上的移植(ubuntu)

    第一步 建立编译环境,rtems的编译环境需要使用newlib的库,所以ubuntu自带的gcc是不可以的,我是参照下面的博客才编译成功的,之前走了好多弯路. http://blog.sina.com ...

  8. 【学习笔记】深入理解超时调用(setTimeout)和间歇调用(setInterval)

    超时调用(setTimeout):在指定的毫秒数后调用函数或计算表达式. setTimeout(func, 1000); // func执行的函数,1000毫秒 间歇调用(setInterval):按 ...

  9. HttpClient调用api

    /// <summary> /// 模拟调用API /// </summary> /// <param requestUrl="">请求地址&l ...

  10. Andrew Ng机器学习课程笔记--week5(下)

    Neural Networks: Learning 内容较多,故分成上下两篇文章. 一.内容概要 Cost Function and Backpropagation Cost Function Bac ...