我们可以尝试第一种方法,"changevisibilityof'i'to'protected'",文件同样可以通过。protected对于子女、朋友,也就是同包下的所有类和不同包的子类来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。所以Parent类中i用"protected"修饰后,对Child类来说i就是可见的,因为Child类继承Parent类。
输出结果是7个数字“1221121”,以下代码后的注释是该行代码的输出结果
最直接也是有点麻烦的方法就是把protected修饰改成public修饰,但是会破坏原属性和方法的封装性。
改造前,未使用抽象类,只能控制台输出
改造后,使用抽象类,可以在控制台,也可以使用对话框图形界面等输入
那就要设计一个图形界面猜数字的类去继承上文提到的抽象类,然后用图形界面支持的输入输出语句来重写抽象类当中的抽象方法。
让类实现Comparable接口,并覆盖compareTo方法就可以实现对象的自动排序。Arrays有一方法publicstaticvoidsort()根据元素的自然顺序对指定对象数组按升序进行排序,数组中的所有元素都必须实现Comparable接口.所以某个类实现了Comparable接口就可以直接使用Arrays.sort对其进行排序。
Comparator是比较器接口。我们若需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口);那么,我们可以建立一个“该类的比较器”来进行排序。这个“比较器”只需要实现>Comparator接口即可。也就是说,我们可以通过“实现Comparator类来新建一个比较器”,然后通过该比较器对类进行排序。Comparator接口仅仅只包括两个个函数,它的定义如下:
StudentDaoArrayImpl类和StudenDaoListImpl类实现了StudentDao接口,覆盖了StudentDao接口中的writeStudent();readStudent();diplayAllStudent();方法,让其在本类中有各自的实现。
StudenDaoListImpl建立的是List
面向接口编程的意思是指在面向对象的系统中所有的类或者模块之间的交互是由接口完成的。
概念很抽象,现在我们针对Test.java代码进行分析:
若是把15行代码注释掉,而编译第16行代码StudentDaosdm=newStudenDaoListImpl();,则是指向列表的变量sdm实现了StudentDao接口,同样可以调用接口中所有方法。
内容:使用Java代码完成上周做的面向对象设计大作业,需要有初步界面。实现的功能尽量简单,少而精,只包含必要的功能,不要追求高大全。写出:类图(尽量精简,不用太多子类,两个即可)、系统常用功能描述、关键代码与界面形式:两人依托码云合作完成。请在这里贴出你们的学号、姓名与任务分工。注意:再过几次课要讲Java图形界面编程,到时候要将该系统升级为图形界面。系统的业务逻辑部分应该变化不大,变化大的是输入与输出部分。所以编码的时候,输入(Scanner)与输出(System.out)的代码,请不要将其与某个业务处理函数绑死。选做加分:给出两人在码云上同一项目的提交记录截图,额外加分。注:两个人在码云上新建一个项目。参考资料:结对编程参考资料可以使用Processon画图