实验四,实验五

(一)学习总结

1.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来?

class Grandparent {
    public Grandparent() {
        System.out.println("GrandParent Created.");
    }
    public Grandparent(String string) {
        System.out.println("GrandParent Created.String:" + string);
    }
}
class Parent extends Grandparent {
    public Parent() {
        super("Hello.Grandparent.");
        System.out.println("Parent Created");
    }
}
class Child extends Parent {
    public Child() {
        System.out.println("Child Created");
    }
}
public class Test{
    public static void main(String args[]) {
        Child c = new Child();
    }
}

编译不能通过,因为super()函数必须是第一个语句,运行结果为Parent Created Child Created,不可以反过来调用

2.阅读下面程序,分析程序中存在哪些错误,说明原因,应如何改正?正确程序的运行结果是什么?

class Animal{
  void shout(){
      System.out.println("动物叫!");
  }

public void sleep() {

}
}
class Dog extends Animal{
      public void shout(){
          System.out.println("汪汪......!");
     }
      public void sleep() {
       System.out.println("狗狗睡觉......");
      }
}
public class Test{
    public static void main(String args[]) {
        Animal animal = new Dog();
        animal.shout();
        animal.sleep();
        Dog dog = (Dog) animal;
        dog.sleep();
        Animal animal2 = new Dog();
        dog = (Dog)animal2;
        dog.shout();
    }
}

没有sleep方法, Dog dog = animal;向下转型错误,应该为Dog dog = (Dog) animal;,Animal animal2 = new Animal();dog = (Dog)animal2;不对,应改为Animal animal2 = new Dog(); dog = (Dog)animal2;

3.运行下列程序

class Person {
   private String name ;
   private int age ;
   public Person(String name,int age){
         this.name = name ;
         this.age = age ;
   }
   public String toString(){
       return "姓名:" + this.name + ",年龄:" + this.age ;
} 

}
public class Test{
      public static void main(String args[]){
             Person per = new Person("张三",20) ;
             System.out.println(per);
             System.out.println(per.toString()) ;
  }
}

(1)程序的运行结果如下,说明什么问题?

[email protected]

[email protected]

这是输出的per的地址

4.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路。现在要创建一个可租车列表,应当如何创建?

可以设计一个汽车租赁属性接口有编号,名称,租金等基本方法,设计客车、货车、皮卡的类,在客车、货车、皮卡类中进行编写租赁佣金,数量的改变,最后在测试类中进行测试。

5.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果

    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");
        }
        @Override
        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

运行不可以通过,接口中有run方法,在实现的类中必须有此方法,void eat()方法,应该为public

(二)实验总结

实验四

一、程序设计思路:

定义银行类Bank:银行名称bankName(静态变量)、用户名name、密码password、账号余额balance、交易额turnover。

包括如下方法:

静态方法welcome():打印欢迎语

构造方法:实现新用户的开户。包括用户名,密码,交易额。开户时扣除10元开卡费。

存款方法deposit():根据存款额修改账户余额。输出相关信息。

取款方法withdrawal():对用户密码进行验证,密码错误或取款额大于余额,不能办理业务,并提示用户。否则,修改用户余额。

静态方法welcomeNext():输出欢迎下次光临。

定义用户交易类Trade,模拟新用户到某个银行办理业务的场景。

问题以及解决方案:

1.在取钱后总会减少卡费,注意取钱和开卡的的区别

2、注意静态变量的使用

二、程序设计思路:

定义员工类,具有姓名、年龄、性别属性,并具有构造方法和显示数据方法。定义管理层类,继承员工类,有自己的属性职务和年薪。定义职员类,继承员工类,并有自己的属性所属部门和月薪。定义一个测试类,进行测试。

问题以及解决方案:

1、注意继承时的调用可以使用super()

2、在继承时注意父类的数据的使用

三、程序设计思路:

(1)设计一个平面图形抽象类(提供求该类对象周长和面积的方法)和一个立体图形抽象类(提供求该类对象表面积和体积的方法)

(2)设计球类、圆柱类,圆锥类、矩形类、三角形类、圆类,分别继承平面图形抽象类和立体图形抽象类。

(3)设计一个测试类,随机产生球,圆柱、圆锥体、矩形、三角形、圆的尺寸,输出他们的结果

问题以及解决方案:

在写抽象类时,注意函数的重写

四、程序设计思路:

某动物园有一饲养员小李, 每天需要给他所负责饲养的一只狮子、五只猴子和十只鸽子喂食。

利用抽象类和对象多态重构,Animal类采用抽象类, 合并Feeder类中的方法

第二次重构,修改feedAnimals方法,让它接收一个Animal数组

实验五

一、程序设计思路:

宠物种类有猫、狗,宠物信息包括:编号、种类、品种、单价、数量。

要求实现以下功能:

(1)展示所有宠物

(2)购买宠物

(3)展示购买清单:显示购买的宠物品种,数量,价格合计及购买宠物的总价钱

问题以及解决方案:

注意调用时与定义的类型一致

二、程序设计思路:

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声:

(1)接口Animal:有2个抽象方法cry()和getAnimaName(),要求实现该接口的各种具体动物类给出自己的叫声和种类名称。

(2)模拟器类Simulator:有一个playSound(Animal animal)方法。即参数animal可以调用实现Animal接口类重写的cry()方法播放具体动物的声音、调用重写的getAnimalName()方法显示动物种类的名称。

(3)实现Animal接口的Dog类和Cat类

(4)测试类:main方法中包含如下代码:

Simulator simulator = new Simulator();

simulator.playSound(new Dog());

simulator.playSound(new Cat());

三、程序设计思路:

模拟物流快递系统

(1)定义一个抽象类交通工具类Transportation,属性:编号,型号,运输负责人。方法:无参构造和含三个参数的构造方法,get和set方法,抽象方法transport()

(2)定义一个专用运输车类JDTransportation继承交通工具类,继承父类构造方法,实现transport()方法,输出一个运输信息。

(3)定义一个接口GPS实现对货物的定位。接口中有方法showCoordinate()跟踪货物的位置信息。

(4)定义一个类Phone实现GPS接口

(5)定义一个快递任务类SendTask,具有私有属性:快递单号、货物重量。方法:无参和含参构造方法,get和set方法,

sendBefore()方法输出运输前的检查信息和快递单号。

send(Transportation t,GPS tool)方法输出运货人、车辆编号、型号信息,该方法中调用transport方法输出运输信息,调用showCoordinate()方法输出货物位置坐标。

sendAfter( Transportation t )方法输出货物运输完成后的信息。

(6)定义一个测试类,创建一个快递任务类对象,一个交通工具类对象,一个GPS工具对象。模拟物流快递过程。输出运输前、运输中和运输后的信息。

问题以及解决方案:注意接口的调用

四、程序设计思路:

按照下列要求完成类的设计

(1)设计一个职工类,该职工类至少具有下面的属性:职工号,姓名,性别,生日,工作部门,参加工作时间,设计相应的方法。

(2)设计一个部门类,包括下列属性:部门编号,部门名称,经理,设计相应方法。

(3)设计一个测试类,采用对象数组模拟一个拥有两个部门,10个职工的单位,实现对相关信息的查询功能。

使用java.util.Date类表示职工的生日和参加工作时间,并将职工信息按照生日大小排序后输出。(分别用comparable和comparator实现)

问题以及解决方案:

使用public Date parse (String source)throws ParseException,将字符串转换为日期类型

码云的连接:

https://gitee.com/hebau_java_cs16/Java_CS01lr

原文地址:https://www.cnblogs.com/lr97/p/8884824.html

时间: 2024-11-29 11:28:26

实验四,实验五的相关文章

20135333苏正生实验四实验报告

课程: Java程序设计 班级: 1353 姓名: 苏正生 学号: 2015333 成绩: 指导教师: 娄家鹏 实验日期: 2015.6.9 实验密级: 预习程度: 实验时间: 3:20~5:00 仪器组次: 必修/选修: 必修 实验序号: 实验四 实验名称: Java网络编程及安全 实验内容: 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验仪器:   名称 型号 数量 笔记本电脑 Msi GS70     1                   实验准

2017-2018-1 20162306 实验四 实验报告

2017-2018-1 20162306 实验四 实验报告 实验三:查找与排序-1 实验要求: 完成教材P302 Searching.Java ,P305 Sorting.java中方法的测试 不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位 提交运行结果图(可多张) 实验过程: 1.对之前的测试代码进行修改,增加测试用例个数 2.修改排序方法,实现逆序 代码如下: public static void nSort(Comparable

实验四实验报 告

实验四 北京电子科技学院(BESTI) 实     验    报     告 课程:深入理解计算机系统        班级:1353 姓名:魏静静 文艺 刘虹辰 学号:20135302 20135331 20135325 成绩:             指导教师:娄嘉鹏  实验日期:2015-11-17 实验密级:         预习程度:          实验时间:15:30-18:00 仪器组次:桌号44    必修/选修:必修  实验序号:4 实验名称:简单嵌入式WEB服务器实验 实验

20145321 实验四实验报告

20145321 实验三实验报告 实验内容 使用android studio实现helloworld以及加入自己的名字. 实验步骤 Android Studio的安装包并进行安装. 设置SDK: 新建项目 编辑文字 PSP 步骤 耗时 百分比 需求分析 20 18% 设计 30 28% 代码实现 20 18% 测试 20 18% 分析总结 20 18%

实验四实验报告

北京电子科技学院(BESTI) 实验报告 课程:信息安全系统设计基础             班级:201352 姓名:池彬宁 贺邦 学号:20135212 20135208 成绩:             指导教师:娄嘉鹏       实验日期:2015.12.1 实验密级:         预习程度:           实验时间:15:30-17:30 仪器组次:         必修/选修:必修          实验序号:3 实验名称:基于 S3C2410 的 linux 开发环境的配

20165313Java实验四 Android程序设计

实验报告封面 课程:Java程序设计 班级:1653班 姓名:张晨晖 学号:20165313 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:实验四 实验名称:Android程序设计 实验内容及步骤 实验一 :Android Stuidio的安装测试 1.试验要求: 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio 完成Hello World,

2017-2018-2 20165336 实验四《Android开发基础》实验报告

20165336 实验四 Android程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:康志强 学号:20165336 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:实验四 实验名称:Android程序设计 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到

2018-2019-2 20175126谢文航 实验四《Android开发基础》实验报告

一.实验封面 课程:Java程序设计 班级:1751 班 姓名:谢文航 学号:20175126 指导教师:娄嘉鹏 实验日期:2019年5月15日 实验时间:--- 实验序号:实验四 实验名称:Android开发基础 实验内容: 参考Android开发简易教程 完成云班课中的检查点,也可以先完成实验报告,直接提交.注意不能只有截图,要有知识点,原理,遇到的问题和解决过程等说明.实验报告中一个检查点要有多张截图. 发表实验报告博客,标题“学期(如2018-2019-2) 学号(如20175300)

# 2018-2019-2 20175304实验四《Android程序设计》实验报告

---恢复内容开始--- 2018-2019-2 20175304实验四<Android程序设计>实验报告 一.实验报告封面 课程:Java程序设计 班级:1753班 姓名:刘朝尹 学号:20175304 指导教师:娄嘉鹏 实验日期:2019年5月17日 实验时间:13:45 - 15:25 实验序号:实验四 实验名称:Android程序设计 实验内容: 1.Android Studio的安装测试 2.Activity测试 3.UI测试 4.布局测试 5.事件处理测试 二.实验内容 提交点一

信息安全系统设计基础实验四:外设驱动程序设计

<信息安全系统设计基础>实验四实验报告 实验目的与要求 学习在linux下进行程序驱动设计的原理 掌握使用模块方式进行驱动开发调试的过程 在PC机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现 分析并理解驱动与应用程序的交互过程 实验步骤 1.连接 arm 开发板 将 arm 开发板电源线接好,保持开发板开关处于闭合状态.再分别将串口线. 并口线和网线与 pc 机连接好. 2.建立超级终端 信息安全系统设计基础课程实验图文教程 besti 20105203 运行 wind