(一)学习总结
1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结。
2.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路并画出类图。
程序设计思路:设置接口包含三个抽象方法:getNo(),getName(),getPrice(),设置三个子类实现接口,并且在每个子类中添加其独有的属性
类图:
3.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果
不能编译通过。
原因:Dog类中没有完全实现Animal接口中的全部抽象方法,Dog类中eat方法降低了自Animal继承的方法的可视性。
改正
interface Animal{
void breathe();
void run();
void eat();
}
class Dog implements Animal{
public void breathe(){
System.out.println("I'm breathing");
}
public void eat(){
System.out.println("I'm eating");
}
public void run() {
}
}
public class Test{
public static void main(String[] args){
Dog dog = new Dog();
dog.breathe();
dog.eat();
}
}
- 运行结果:
I'm breathing
I'm eating
4.运行下面的程序
import java.util.Arrays;
public class Test{
public static void main(String[] args){
String[] fruits = {"peach","banana","orange","apple"};
Arrays.sort(fruits);
for(int i = 0;i < fruits.length;i++)
{
System.out.println(fruits[i]);
}
}
}
- 运行结果:
apple
banana
orange
peach
程序输出的结果是升序排序的。查看String 类的源码,说明是如何实现的?如果现在希望对输出的结果进行降序排序,该如何处理?修改上述代码,实现按照字母顺序逆序排序。
修改:
import java.util.Arrays;
public class Test{
public static void main(String[] args){
String[] fruits = {"peach","banana","orange","apple"};
Arrays.sort(fruits);
for(int i = fruits.length-1;i >= 0;i--)
{
System.out.println(fruits[i]);
}
}
}
5.其他需要总结的内容。
(1)在java中所有的类都有一个公共的父类:Object类 其中常用方法有:equals()对象比较方法,toString()对象打印时调用方法,equals比较的是对象的内容是否相等。
(2)正则表达式,常用正则规范
(二)实验总结
1.某工厂生产各种音乐盒,客户无需知道音乐盒的制作过程,只需知道如何播放音乐盒即可。用简单工厂设计模式实现该过程:接口MusicBox具有方法play(),两个音乐盒类PianoBox,ViolinBox,MusicBoxFactory 产生MusicBox的实例。
程序设计思路:设置音乐盒抽象类,在其子类中实现抽象方法play(),设置工厂类,在工厂类中实现音乐盒对象,在测试类中用户可直接选择即可,不需要了解其实现过程。
2.修改第三次作业的第一题,使用java.util.Date类表示职工的生日和参加工作时间,并将职工信息按照生日大小排序后输出。(分别用comparable和comparator实现)
程序设计思路:定义部门类,职工类,在测试类中初始化职工信息,其中日期类直接使用date实现
问题:不知道date类应该怎么比较大小
解决:查了帮助文档发现date类中有能够直接比较大小的方法compareTo()
3.在案例宠物商店的基础上,实现以下功能:
(1)展示所有宠物
(2)购买宠物
(3)显示购买清单
程序设计思路:定义宠物接口,分别定义猫,狗类实现接口,定义宠物商店类,在商店类中实现添加宠物,查找宠物,显示信息等方法,测试类中实现宠物购买。
问题:开始设置的宠物查找方法只能查找一个宠物
解决:在方法中设置一个数组接收查找到的宠物,返回这个数组
问题:用户购买宠物在petshop中定义方法返回了一个数组,在测试类中不知道怎么接收。
解决:直接在方法中输出,若有需要可定义其返回值为int型 实现其他要求。