zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    文章评论:级数中达朗贝尔判别法和柯西判别法之间的关系研究 By 彭军
    解析函数论 Page 22 达朗贝尔判别法 VS 柯西判别法
    解析函數論 Page 28 連續復變函數的最簡單的性質
    #2066:一个人的旅行(Dijkstra算法入门题)
    #2072 单词数(字符串流使用)
    传统的DOM渲染方式 吴小明
    【闭包】closure 吴小明
    报文 吴小明
    节流和防抖 吴小明
    什么是模块化?它有什么好处?常用的模块化开发的方案 吴小明
  • 原文地址:https://www.cnblogs.com/namtaehyun/p/6755589.html
Copyright © 2011-2022 走看看