java第二次实验——接口继承……

Java实验第二次

目录

1. 定义一个类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型属性str,封装这两个属性的四个方法setData( )和getData( )、setStr( )和getStr( );将这两个属性转变为字符串的方法是toString( )。编写程序,使用MyProgram类,实现数据的访问和修改,并调用toString( )方法显示该类的属性。

public class MyProgram {
   

    public static void main(String[] args) {
   
        // TODO Auto-generated method stub
        MyProgram2 my = new MyProgram2(111, "222");
        System.out.println(my.toString());
    }

}

class MyProgram2 {
   
    private int date;
    private String str;

    public MyProgram2() {
   
    }

    public MyProgram2(int date, String str) {
   
        this.date = date;
        this.str = str;
    }

    public int getDate() {
   
        return date;
    }

    public void setDate(int date) {
   
        this.date = date;
    }

    public String getStr() {
   
        return str;
    }

    public void setStr(String str) {
   
        this.str = str;
    }

    @Override
    public String toString() {
   
        return "MyProgram{" +
                "date=" + date +
                ", str='" + str + '\'' +
                '}';
    }

}

2. 在Vehicle类的基础上创建一个Tractor(拖拉机)类,它不仅拥有journey、wheelNum、LoadNum、driveSpeed四种属性和DriveAt()方法,而且还拥有自己的plough()方法,在该方法中要求能够显示journey、wheelNum、LoadNum三个属性的值。请编写测试类,运行DriveAt()、plough()方法。Vehicle类的程序代码:

public class Vehicle {
   
    public float journey;
    public int wheelNum;
    public int loadNum;
    public int driveSpeed;

    public Vehicle(){
   
        journey = 100.3f;
        wheelNum = 4;
        loadNum = 1;
    }

    public void driveAt(int speed){
   
        if(speed >= 60){
   
            System.out.println("你的速度行驶过快,重新以40速度行驶");
            driveSpeed = 40;
        }
        if(speed <= 60){
   
            driveSpeed = speed;
        }
    }
    public void plough(){
   
        System.out.println("journey:"+journey);
        System.out.println("wheelNum:"+wheelNum);
        System.out.println("loadNum:"+loadNum);
        System.out.println("现在的driveSpeed:"+driveSpeed);
    }

}
package text2.vehicle;

public class Vehicle_text extends Vehicle{
   

    public static void main(String[] args) {
   
        // TODO Auto-generated method stub
        Vehicle v = new Vehicle();
        v.driveAt(80);
        v.plough();

        System.out.println("==============");
        Vehicle v2 = new Vehicle();
        v.driveAt(30);
        v.plough();

    }

}

3. 组合实现汽车类【以下为选做题】

3 问题描述:一辆Car有(has)四个轮子(Wheels)和一个发动机(Engine)。现在要求用组合方法设计类Car、类Wheel和类Engine。
(1) 类Engine 有字符串属性type记录发动机的型号;
有构造方法,可设置发动机的型号;
有方法start()启动引擎(输出下面样例中包含发动机型号和“starts”的字符串)。
(2)类Wheel有字符串属性type记录轮胎的型号,有整数类型属性index记录当前轮胎编号(1:front-left,2:front-right,3:back-left,4:back-right);
有构造方法,可设置轮胎的型号和编号;
有方法roll()表示轮胎正在转动(输出下面样例中包含轮胎型号、轮胎位置和“rolling”的字符串)。
(3)类Car有字符串属性model记录轿车的型号,有属性wheels[]和engine,分别是Wheel类对象数组和Engine类对象;
有构造方法,参数是三个字符串,分别表示轿车的型号、轮胎型号和发动机的型号;
有方法changeWheel()可以改变指定轮胎的型号;
有方法start(),先输出下面样例中包含轿车型号和“firing”的字符串,然后调用engine的start(),再调用所有轮胎的roll(),最后显示轿车型号和“running”。

public class Car {
   
    private String model;   //model记录轿车的型号
    private String wheel;     //轮子
    private String engine;      //发动机

    private String []wheels=new String[5];  //Wheel类对象数组

    public Car(String model, String wheel, String engine) {
      //构造方法
        super();
        this.model = model;
        this.wheel = wheel;
        this.engine = engine;
        for(int i=0;i<wheels.length;i++){
        //把wheel的数据循环传入wheel对象数组中
            wheels[i]=wheel;

        }
    }
    public void  changeWheel(int index,String type){
      //整数类型属性index记录当前轮胎编号
        wheels[index]=type;     //通过index编号,修改轮胎类型
    }
    public void start(){
   
        System.out.println("Car"+model+"firing!");
        Engine e=new Engine(this.engine);
        e.start();
        for(int i=0;i<wheels.length;i++){
   
            Wheel w=new 
  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java继承接口、多态是面向对象编程的三大核心特性,以下是它们的实验总结: 1. 继承继承是一种重用代码的方式,它允许我们定义一个新的,该继承了现有属性和方法。在Java中,继承是通过关键字"extends"来实现的。 在实验过程中,我们可以通过定义一个,然后在子中使用"extends"关键字继承属性和方法。例如: ```java class Animal { public void eat() { System.out.println("Animal is eating"); } } class Dog extends Animal { public void bark() { System.out.println("Dog is barking"); } } ``` 在上面的例子中,Dog继承了Animal的eat()方法。我们可以实例化Dog并调用eat()方法,因为Dog继承了Animal的行为。 2. 接口接口是一种定义行为的方式,它定义了应该如何相互协作。在Java中,接口是通过关键字"interface"来定义的。 在实验过程中,我们可以通过定义一个接口来定义的行为,然后让实现该接口。例如: ```java interface Animal { public void eat(); } class Dog implements Animal { public void eat() { System.out.println("Dog is eating"); } } ``` 在上面的例子中,Animal接口定义了eat()方法,然后Dog实现了该接口并实现了eat()方法。 3. 多态:多态是一种对象的行为表现方式,它允许我们使用一个的引用来引用一个的对象。在Java中,多态是通过继承接口来实现的。 在实验过程中,我们可以定义一个的引用,并使用该引用来引用一个的对象。例如: ```java class Animal { public void eat() { System.out.println("Animal is eating"); } } class Dog extends Animal { public void eat() { System.out.println("Dog is eating"); } } public class Main { public static void main(String[] args) { Animal a = new Animal(); Animal b = new Dog(); a.eat(); // 输出 "Animal is eating" b.eat(); // 输出 "Dog is eating" } } ``` 在上面的例子中,我们定义了一个Animal一个Dog,然后在main()方法中定义了一个Animal型的引用a和一个Animal型的引用b,并使用它们来引用一个Animal对象和一个Dog对象。由于Dog继承了Animal的eat()方法,并且重写了该方法,因此在调用b.eat()方法时,输出的是"Dog is eating"。这就是多态的表现方式。 总的来说,继承接口、多态是Java面向对象编程的三大核心特性,它们可以帮助我们更好地组织代码、提高代码的可重用性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值