代码修正如下~说明参看其中
interface zhuanhuan {
final int cl = 32;
public double zhuanhuan(double tem);
}
class huashi implements zhuanhuan {
/你要实现interface,所以需要实现zhuanhuan,不知道是不是你的误写/
public double zhuanhuan(double temp) {
return temp 9 / 5 + cl;
}
}
class sheshi implements zhuanhuan {
/看来不是你的误写,要弄清楚什么是interface,为什么要实现才好/
public double zhuanhuan(double temp) {
return (temp - cl) 5 / 9;
}
}
public class wendu {
public static void main(String[] args) {
int a = IntegervalueOf(args[0]);
double tem = IntegervalueOf(args[1]);
if (a == 1) {
zhuanhuan h = new huashi();
tem = hzhuanhuan(tem);
/这种错误也许是手误/
Systemoutprintln("摄氏转换为华氏为:" + tem);
}
else {
zhuanhuan s = new sheshi();
tem = szhuanhuan(tem);
/你是不是喜欢拷贝错误代码?哈/
Systemoutprintln("华氏转换为摄氏为:" + tem);
}
}
}
Scanner input = new Scanner(Systemin);
double h = inputnextDouble();
double c = (h - 32) / 18;
Systemoutprintln("华氏度:"+h+"℉");
Systemoutprintln("摄氏度:"+c+"℃");
你一直在重复的给f赋值,我刚写了下,给你参考,代码贴在下面,选我下哦
import javautilScanner;public class Work1
{
public static void main(String[] args)
{
double a;
double b;
Systemoutprintln("请选择温度种类:1,摄氏度转华氏度 2,华氏度转摄氏度");
Scanner change = new Scanner(Systemin);
double g = changenextInt();
Systemoutprintln("请输入需要转换的温度:");
Scanner changedegree = new Scanner(Systemin);
double f = changedegreenextDouble();
if (g == 1)
{
a = f 9 / 5 + 32;
Systemoutprintln("华氏度为:" + a);
} else if (g == 2)
{
b = (f - 32) 5 / 9;
Systemoutprintln("摄氏度为" + b);
}
}
}
原理:观察者模式
两个类可实现。
一个是监听温度类,它是一个线程类,每时每刻测量室内问题,当室内温度小于15度时,通知升温类升温。
另一个类升温类,它的功能是“当室内温度小于15度时,将空调温度每次提升一度,直到升到25度,并将执行的结果告诉监听温度类(我升温完毕了,假如温度还低于15度,请再次通知我升温吧)。
package cncom;import javautilRandom;
/
测量温度类
@author JinBiaoHuang
/
public class MeasureTemperature implements Runnable {
private static boolean raisingTemperature = false;// 是否正在升温,假如正在升温,就不需要通知了
private int temperature;
@Override
public void run() {
while (true) {//每时每刻测量温度,假如低于15度,并且
try {
temperature = getRandomTemperature();// 测量温度
Threadsleep(10); // 模拟测量温度所需时间
if (!raisingTemperature && temperature < 15) {
Systemoutprintln("现在温度是" + temperature + "度,太冷了,要升温才行");
raisingTemperature = true;
new ControlTemperature()raiseTemperature(temperature);
}
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
private int getRandomTemperature() { //正常室温就40度
return new Random()nextInt(40);
}
public void setRaisingTemperature(boolean that_raisingTemperature) {
raisingTemperature = that_raisingTemperature;
}
}
package cncom;
/
升温类
@author JinBiaoHuang
/
public class ControlTemperature {
public void raiseTemperature(int temperature) throws InterruptedException {
Systemoutprintln("我收到你的升温请求了请稍等");
while (temperature < 25) {
Threadsleep(20);//模拟升温需要的时间
temperature++;
Systemoutprintln("努力升温中,现在温度是" + temperature + "度,在稍等一会");
}
Systemoutprintln("升温完毕,现在温度是" + temperature + "度,够暖和了吧");
new MeasureTemperature()setRaisingTemperature(false);
}
}
package cncom;
/
测试类
@author JinBiaoHuang
/
public class RaiseTemperatureTest {
public static void main(String[] args) {
MeasureTemperature runnable = new MeasureTemperature();
new Thread(runnable)start();//启动线程
}
}
打印结果
现在温度是7度,太冷了,要升温才行
我收到你的升温请求了请稍等
努力升温中,现在温度是8度,在稍等一会
努力升温中,现在温度是9度,在稍等一会
努力升温中,现在温度是10度,在稍等一会
努力升温中,现在温度是11度,在稍等一会
努力升温中,现在温度是12度,在稍等一会
努力升温中,现在温度是13度,在稍等一会
努力升温中,现在温度是14度,在稍等一会
努力升温中,现在温度是15度,在稍等一会
努力升温中,现在温度是16度,在稍等一会
努力升温中,现在温度是17度,在稍等一会
努力升温中,现在温度是18度,在稍等一会
努力升温中,现在温度是19度,在稍等一会
努力升温中,现在温度是20度,在稍等一会
努力升温中,现在温度是21度,在稍等一会
努力升温中,现在温度是22度,在稍等一会
努力升温中,现在温度是23度,在稍等一会
努力升温中,现在温度是24度,在稍等一会
努力升温中,现在温度是25度,在稍等一会
升温完毕,现在温度是25度,够暖和了吧
以上就是关于java关于温度转换问题全部的内容,包括:java关于温度转换问题、怎么用java实现将华氏度转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度要求从控制台录入温度信息、java编程温度转换等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)