201521123084 《Java程序设计》第6周学习总结 1. 本周学习总结 2. 书面作业 3. 码云上代码提交记录及PTA实验总结 3.2. PTA实验

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

注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖面向对象的核心内容即可。

注2:颜色要少、连线不要复杂,必要的时候要在连线上进行说明。

201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验

2. 书面作业

1. clone方法

1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?
answer:

(1)只能在本类内部或者和Object同包的地方使用,而不能在其他类使用。
(2)如果将protected换成public,会缩小其局限性。

1.2 自己设计类时,一般对什么样的方法使用protected进行修饰?以作业Shape为例说明。
answer:

(1)protected修饰的变量或方法只能被当前类,同包类或者子孙类继承或使用
(2)在作业Shape类,有Circle、Rectangle这两个子类,因为Circle、Rectangle都继承Shape类型,所以其会拥有getPerimeter()与getArea()两种方法,所以可以用protected修饰。

1.3 在test1包中编写简单的Employee类,在test2包中新建一个TestProtected类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?
answer:

(1)不能成功
(2)因为Employee类和TestProtected类不在同一个包内。

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

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

>(1)匿名内部类
   Comparator<PersonSortable2> NameComparator = new Comparator<PersonSortable2>() {
   			public int compare(PersonSortable2 obj1,PersonSortable2 obj2) {
   				if (obj1.getName() .compareTo(obj2.getName()) > 0)
   					return 1;
   				else if (obj1.getName().compareTo(obj2.getName()) < 0)
   					return -1;
   				else
   					return 0;
   			}	
   		};
   		
   Comparator<PersonSortable2> AgeComparator = new Comparator<PersonSortable2>() {
   			public int compare(PersonSortable2 obj1,PersonSortable2 obj2) {
   				if (obj1.getAge() > obj2.getAge()) 
   					return 1;
   				else if (obj1.getAge() < obj2.getAge()) 
   					return -1;
   				else
   					return 0;
   			}
   		};

运行结果:
201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验

(2)Lambda表达式:
       Comparator<PersonSortable2> NameComparator=(o1,o2)-> o1.getName().compareTo(o2.getName());
       Comparator<PersonSortable2> AgeComparator=(o1,o2)-> o1.getAge()-o2.getAge(); 

运行结果:
201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验

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

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

answer:

>shapeComparator实现了Comparator接口,让这个对象可以用Arrays.sort()方法排序。

4. GUI中的事件处理

4.1 写出事件处理模型中最重要的几个关键词。
answer:

(1)事件源
(2)事件对象
(3)监听器

4.2 使用代码与注释,证明你理解了事件处理模型。
answer:
没有及时完成博客作业真是抱歉,现在进行修补,望老师能够重评
就以大作业的Login窗口为例,以下是Login窗口的关键代码和注释:

private void LoginButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
     String a = nameTextField.getText();      //事件源
     String b = jPasswordField1.getText();    //事件源
     if(a.equals("LzsFantastic")||b.equals("123456")){//事件发生时的动作
         Tips.setText("Login successfully!");  
     }
     else
         Tips.setText("Login failed , try another name or password"); 
}                                           

private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             

    System.exit(0);  //关闭窗口
            
}               

5. 结对编程:面向对象设计(大作业2-非常重要,未完成-2)

继续完善上周的项目作业。考核点如下:
5.1 尝试使用图形界面改写。
5.2 给出两人在码云上同一项目的提交记录截图。
5.3 与上周相比,项目的主要改动是什么?
answer:

本周的大作业也是惨不忍睹,只完成了一个登陆界面,和一个shoppingCart的大概构思。原因在于不知道如何将代码与图形界面联系到一起,我这边说个大概,具体在我的partner那边应该会有详细的说明。
登陆界面:
201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验
201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验

201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验
201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验

登录界面做的也很low,只是完成了基本登陆。。。密码输对了就成功,输错就失败,并不能连接到后台。

购物车界面(初步构思):
201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验
想要利用勾选项和文本字块结合,算出总价,之后通过“Purchase”按钮来结算,这是我们想要做到的事。

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

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

3.1. 码云代码提交记录

  • 在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
    201521123084 《Java程序设计》第6周学习总结
1. 本周学习总结
2. 书面作业
3. 码云上代码提交记录及PTA实验总结
3.2. PTA实验

3.2. PTA实验

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

4-1:建一个匿名内部类,按照题目要求一步一步写下来,关键在于 MySatrter (new ActionListener()的编写;
5-3:按照IntegerStack接口的注释,再对ArrayIntegerStack的每种进行重写,重点在于栈满和空栈的判断;
5-4:创建静态内部类,找出最大值和最小值。这题关键在于静态内部类的编写,还有toString的重写。其中PairResult [min=-1.0, max=1.1]的之中的空格也要注意。