华为OD机试 - 宜居星球改造计划(Java & JS & Python)
华为OD机试 - 宜居星球改造计划(Java & JS & Python)
一、题目描述
宜居星球是一个美丽的星球,但是由于人类的过度开发和污染,宜居星球的环境已经受到了严重的破坏。为了拯救宜居星球,我们需要进行一系列的改造计划。
本次机试要求你使用 Java、JS 和 Python 三种编程语言,分别实现以下功能:
1. Java 实现一个宜居星球的类 Planet,包含以下属性:
- name:星球名称,类型为 String。
- temperature:星球温度,类型为 double。
- atmosphere:星球大气层,类型为 String。
- water:星球水资源,类型为 boolean。
并实现以下方法:
- 构造方法:传入星球名称、温度、大气层和水资源,初始化 Planet 对象。
- getName():返回星球名称。
- getTemperature():返回星球温度。
- getAtmosphere():返回星球大气层。
- hasWater():返回星球是否有水资源。
2. JS 实现一个宜居星球的类 Planet,包含以下属性:
- name:星球名称,类型为字符串。
- temperature:星球温度,类型为数字。
- atmosphere:星球大气层,类型为字符串。
- water:星球水资源,类型为布尔值。
并实现以下方法:
- 构造方法:传入星球名称、温度、大气层和水资源,初始化 Planet 对象。
- getName():返回星球名称。
- getTemperature():返回星球温度。
- getAtmosphere():返回星球大气层。
- hasWater():返回星球是否有水资源。
3. Python 实现一个宜居星球的类 Planet,包含以下属性:
- name:星球名称,类型为字符串。
- temperature:星球温度,类型为浮点数。
- atmosphere:星球大气层,类型为字符串。
- water:星球水资源,类型为布尔值。
并实现以下方法:
- 构造方法:传入星球名称、温度、大气层和水资源,初始化 Planet 对象。
- getName():返回星球名称。
- getTemperature():返回星球温度。
- getAtmosphere():返回星球大气层。
- hasWater():返回星球是否有水资源。
4. Java 实现一个宜居星球的改造计划类 PlanetImprovementPlan,包含以下属性:
- planet:需要改造的星球,类型为 Planet。
- temperatureChange:温度变化值,类型为 double。
- atmosphereChange:大气层变化值,类型为 String。
- waterChange:水资源变化值,类型为 boolean。
并实现以下方法:
- 构造方法:传入需要改造的星球、温度变化值、大气层变化值和水资源变化值,初始化 PlanetImprovementPlan 对象。
- improve():对星球进行改造,改变星球的温度、大气层和水资源。
5. JS 实现一个宜居星球的改造计划类 PlanetImprovementPlan,包含以下属性:
- planet:需要改造的星球,类型为 Planet。
- temperatureChange:温度变化值,类型为数字。
- atmosphereChange:大气层变化值,类型为字符串。
- waterChange:水资源变化值,类型为布尔值。
并实现以下方法:
- 构造方法:传入需要改造的星球、温度变化值、大气层变化值和水资源变化值,初始化 PlanetImprovementPlan 对象。
- improve():对星球进行改造,改变星球的温度、大气层和水资源。
6. Python 实现一个宜居星球的改造计划类 PlanetImprovementPlan,包含以下属性:
- planet:需要改造的星球,类型为 Planet。
- temperatureChange:温度变化值,类型为浮点数。
- atmosphereChange:大气层变化值,类型为字符串。
- waterChange:水资源变化值,类型为布尔值。
并实现以下方法:
- 构造方法:传入需要改造的星球、温度变化值、大气层变化值和水资源变化值,初始化 PlanetImprovementPlan 对象。
- improve():对星球进行改造,改变星球的温度、大气层和水资源。
二、代码实现
1. Java 实现
Planet.java
public class Planet {
private String name;
private double temperature;
private String atmosphere;
private boolean water;
public Planet(String name double temperature String atmosphere boolean water) {
this.name = name;
this.temperature = temperature;
this.atmosphere = atmosphere;
this.water = water;
}
public String getName() {
return name;
}
public double getTemperature() {
return temperature;
}
public String getAtmosphere() {
return atmosphere;
}
public boolean hasWater() {
return water;
}
}
PlanetImprovementPlan.java
public class PlanetImprovementPlan {
private Planet planet;
private double temperatureChange;
private String atmosphereChange;
private boolean waterChange;
public PlanetImprovementPlan(Planet planet double temperatureChange String atmosphereChange boolean waterChange) {
this.planet = planet;
this.temperatureChange = temperatureChange;
this.atmosphereChange = atmosphereChange;
this.waterChange = waterChange;
}
public void improve() {
planet.temperature += temperatureChange;
planet.atmosphere = atmosphereChange;
planet.water = waterChange;
}
}
2. JS 实现
Planet.js
class Planet {
constructor(name temperature atmosphere water) {
this.name = name;
this.temperature = temperature;
this.atmosphere = atmosphere;
this.water = water;
}
getName() {
return this.name;
}
getTemperature() {
return this.temperature;
}
getAtmosphere() {
return this.atmosphere;
}
hasWater() {
return this.water;
}
}
PlanetImprovementPlan.js
class PlanetImprovementPlan {
constructor(planet temperatureChange atmosphereChange waterChange) {
this.planet = planet;
this.temperatureChange = temperatureChange;
this.atmosphereChange = atmosphereChange;
this.waterChange = waterChange;
}
improve() {
this.planet.temperature += this.temperatureChange;
this.planet.atmosphere = this.atmosphereChange;
this.planet.water = this.waterChange;
}
}
3. Python 实现
Planet.py
class Planet:
def __init__(self name temperature atmosphere water):
self.name = name
self.temperature = temperature
self.atmosphere = atmosphere
self.water = water
def getName(self):
return self.name
def getTemperature(self):
return self.temperature
def getAtmosphere(self):
return self.atmosphere
def hasWater(self):
return self.water
PlanetImprovementPlan.py
class PlanetImprovementPlan:
def __init__(self planet temperatureChange atmosphereChange waterChange):
self.planet = planet
self.temperatureChange = temperatureChange
self.atmosphereChange = atmosphereChange
self.waterChange = waterChange
def improve(self):
self.planet.temperature += self.temperatureChange
self.planet.atmosphere = self.atmosphereChange
self.planet.water = self.waterChange
三、代码注释
1. Java 实现
- Planet.java
// 定义一个宜居星球的类 Planet
public class Planet {
// 定义星球名称、温度、大气层和水资源四个属性
private String name;
private double temperature;
private String atmosphere;
private boolean water;
// 构造方法,传入星球名称、温度、大气层和水资源,初始化 Planet 对象
public Planet(String name double temperature String atmosphere boolean water) {
this.name = name;
this.temperature = temperature;
this.atmosphere = atmosphere;
this.water = water;
}
// 返回星球名称
public String getName() {
return name;
}
// 返回星球温度
public double getTemperature() {