Java类方法编写语句报"; expected"错误,请求技术帮助
解决你的Java编译错误与逻辑问题
首先,直接导致你看到error: ; expected的核心问题是小数分隔符用错了:在Java里,小数必须用**点号(.)**而不是逗号(,)。你在KgaLibras方法里写的0,453会被编译器识别成两个独立的元素,自然会报缺少分号的语法错误。
第一步:修正语法错误
把PESO类里的这行代码:
pesoLibras = 0,453 * pesoKg;
改成:
pesoLibras = 0.453 * pesoKg;
第二步:补充缺失的方法
你的主类里调用了t.setLibras(g),但PESO类里根本没有定义这个方法,这会导致另一个编译错误。需要给PESO类添加setLibras方法,同时根据你的转换逻辑补充必要的赋值:
public class PESO { private double pesoKg; private double pesoLibras; // 添加setLibras方法,设置磅值 public void setLibras(double libras) { this.pesoLibras = libras; // 如果需要同步计算公斤值,可以加这行: // this.pesoKg = libras / 0.453; } // 公斤转磅的方法,修正语法后可正常编译 public double KgaLibras(){ pesoLibras = 0.453 * pesoKg; return pesoLibras; } // 补充设置公斤值的方法,方便后续逻辑调用 public void setPesoKg(double kg) { this.pesoKg = kg; } }
第三步:调整主类的逻辑
看你的主类代码,输入数值后调用setLibras再调用KgaLibras,这里逻辑有点混乱:如果KgaLibras是“公斤转磅”,那你应该输入公斤值、调用setPesoKg再执行转换;如果是想把输入的磅转成公斤,那需要修改方法名和计算逻辑。
比如,如果你想实现输入公斤数,转换成磅,主类可以改成这样:
import java.util.Scanner; public class TEST { public static void main(String[] args) { Scanner teclado = new Scanner(System.in); System.out.print("请输入公斤数:"); double kg = teclado.nextDouble(); PESO t = new PESO(); t.setPesoKg(kg); double libras = t.KgaLibras(); System.out.println(kg + " 公斤 = " + libras + " 磅"); teclado.close(); } }
额外小建议
- Java的方法名通常遵循小驼峰命名法,比如
kgToLibras比KgaLibras更规范,提升代码可读性。 - 用完
Scanner后记得调用close()释放资源,避免潜在的资源泄漏问题。
内容的提问来源于stack exchange,提问作者hurixi
相关产品推荐
相关产品推荐

