java第五次作业

(一)学习总结

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型 实现其他要求。

(三)代码托管

链接:https://git.oschina.net/hebau_cs15/Java-CS02sqr.git

原文地址:https://www.cnblogs.com/namtaehyun/p/6755589.html