201521145048《Java程序设计》第6周学习总结

as

1. 本周学习总结


2. 书面作业

Q1.clone方法

1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?

1.1、要重写clone方法,最好用public修饰,要实现Cloneable接口
1.2、 protected的访问权限是本类,同包和子类,根据protected所规定的访问范围,有些方法只想让同包的类和子类访问时采用protected修饰。以Shape为例,getPerimeter与getArea分别为计算面积与周长的方法,很明显只有继承了Shape的子类才具有这两种方法,因此可用protected修饰。
1.3、这俩类不在一个包内,也不是继承关系,不能编译通过。


Q2.使用匿名类与Lambda表达式改写题集面向对象2-进阶-多态接口内部类的题目5-2

仅需粘贴关键代码与运行结果,图片不要太大。

匿名内部类

 Arrays.sort(s, new Comparator<PersonSortable2>() {

 public int compare(PersonSortable2 arg0, PersonSortable2 arg1) {
 // TODO Auto-generated method stub
 return arg0.getName().compareTo(arg1.getName());
 }

 });
 
Arrays.sort(s, new Comparator<PersonSortable2>() {

 public int compare(PersonSortable2 arg0, PersonSortable2 arg1) {
 // TODO Auto-generated method stub
 return arg0.getAge() - arg1.getAge();
 }

 });

 

Lambda表达式

Arrays.sort(person,(o1,o2)->o1.getName().compareTo(o2.getName()));
Arrays.sort(person,(o1,o2)->o1.getAge()-o2.getAge());

运行结果


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

答:shapeComparator所指向的对象只是为了实现Comparator接口,对继承方法的调用或覆盖,大部分匿名内部类用于实现接口,在运行时,类为实现这个接口的类,类名没有太大的意义


Q4.GUI中的事件处理

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

4.1 写出事件处理模型中最重要的几个关键词。
4.2 使用代码与注释,证明你理解了事件处理模型

4.1、事件处理三个部分:事件源—事件对象—事件监听器
4.2、

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {                                        
    String a=aTextField.getText();//得到aTextField输入的字符串
    String b=bTextField.getText();//得到bTextField输入的字符串
    double da=Double.parseDouble(a);
    double db=Double.parseDouble(b);
    resultLabel.setText(""+(da+db));//JLabel得到两个double数字的和
     } 
//JButton的功能,在里面输入想要实现的功能,在运行时按下按钮触发事件,实现功能,例如本代码,实现输入两个数字字符串,并转换为double数字,并相加   

3. 码云上代码提交记录及PTA实验总结

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

3.1. 码云代码提交记录

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

3.2. PTA实验

函数(选做:4-1)、编程(5-3, 5-4)
一定要有实验总结

5.3、rrayIntegerStack,功能与栈一样,在内部建立一个数组和一个标记top,记录栈顶位置,判断是否栈空或栈满,之前遇到的麻烦是如何判断栈空或栈满。就是要注意如果栈为空,则出栈和取栈顶都是无效操作。就是记得判空就好了。否则会报数组越界的错误。

5.4、静态内部类,主要在外部类的方法中,创建内部类对象,使用内部类的属性,与static方法类似。如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

posted @ 2017-04-01 23:21  林健  阅读(162)  评论(0编辑  收藏  举报