ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 多态 polymorphic 枚举 练习

2021-07-09 16:32:48  阅读:156  来源: 互联网

标签:Java Car void 多态 System println polymorphic public out


  

 

 

package ersatz;

public class Car {
  private double temperature;

  public Car(double temperature) {
    this.temperature = temperature;
  }

  private class Air {
    public void tune() {
      if (temperature >= 40) {
        System.out.println("cold air");
      } else if (temperature < 0) {
        System.out.println("warm air");
      } else {
        System.out.println("nothing");
      }
    }
  }

  public Air getAir() {
    return new Air();
  }

  public static void main(String[] args) {
    final Car car = new Car(50);
    car.getAir().tune();
    final Car car1 = new Car(-5);
    car1.getAir().tune();
    final Car car2 = new Car(33);
    car2.getAir().tune();
  }
}

  

package ersatz;

public class Car {
  private double temperature;

  public Car(double temperature) {
    this.temperature = temperature;
  }

  private class Air {
    public void tune() {
      if (temperature >= 40) {
        System.out.println("cold air");
      } else if (temperature < 0) {
        System.out.println("warm air");
      } else {
        System.out.println("nothing");
      }
    }
  }

  public void regulate() {
    new Air().tune();
  }

  public static void main(String[] args) {
    final Car car = new Car(50);
    car.regulate();
    final Car car1 = new Car(-5);
    car1.regulate();
    final Car car2 = new Car(33);
    car2.regulate();
  }
}

  

 

 

 

Vehicle.java

package com.gibe;

public interface Vehicle {
  public abstract void work();
}

  

Horse.java

  

package com.gibe;

public class Horse implements Vehicle{
  @Override
  public void work(){
    System.out.println("use horse");
  }
}

  

Boat.java

package com.gibe;

public class Boat implements Vehicle{
  @Override
  public void work(){
    System.out.println("use boat");
  }
}

  

Plane.java

package com.gibe;

public class Plane implements Vehicle{
  @Override
  public void work() {
    System.out.println("use plane");
  }
}

  

VehicleFactory.java

package com.gibe;

public class VehicleFactory {
  private static Horse horse = null;
  private static final Boat boat = new Boat();

  private VehicleFactory() {
  }

  public static Horse getHorse() {
    if (horse == null) {
      horse = new Horse();
    }
    return horse;
  }

  public static Boat getBoat() {
    return boat;
  }

  public static Plane getPlane() {
    return new Plane();
  }
}

  

Person.java

package com.gibe;

public class Person {
  private String name;
  private Vehicle vehicle;

  public Person(String name, Vehicle vehicle) {
    this.name = name;
    this.vehicle = vehicle;
  }

  public void river() {
    if (!(this.vehicle instanceof Boat)) {
      vehicle = VehicleFactory.getBoat();
    }
    vehicle.work();
  }

  public void land() {
    if (!(vehicle instanceof Horse)) {
      vehicle = VehicleFactory.getHorse();
    }
    vehicle.work();
  }

  public void fire() {
    if (!(vehicle instanceof Plane)) {
      vehicle = VehicleFactory.getPlane();
    }
    vehicle.work();
  }
}

  

Test

package ersatz;


import com.gibe.Person;
import com.gibe.VehicleFactory;

public class Ersatz {
  @SuppressWarnings({"SpellCheckingInspection"})
  public static void main(String[] args) {
    final Person bb = new Person("bb", VehicleFactory.getHorse());
    bb.land();
    bb.river();
    bb.fire();
    bb.river();
  }
}

  

 

 

package com.gibe;

public class Ersatz {
  public static void main(String[] args) {
    Color green = Color.GREEN;
    green.show();
    switch (green) {
      case YELLOW:
        System.out.println("yellow");
        break;
      case BLACK:
        System.out.println("black");
        break;
      default:
        System.out.println("none");
        break;
    }
  }
}


enum Color implements Interface {
  RED(255, 0, 0), BLUE(0, 0, 255),
  BLACK(0, 0, 0), YELLOW(255, 255, 0),
  GREEN(0, 255, 0);
  private final int red;
  private final int green;
  private final int blue;

  private Color(int red, int green, int blue) {
    this.red = red;
    this.green = green;
    this.blue = blue;
  }

  @Override
  public void show() {
    System.out.println("red=" + red + ", green=" + green + ", blue=" + blue);
  }
}

interface Interface {
  public abstract void show();
}

  

 

标签:Java,Car,void,多态,System,println,polymorphic,public,out
来源: https://www.cnblogs.com/dissipate/p/14991147.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有