You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java无自定义构造器Angle类计算角度差结果恒为0问题求解

核心问题

你代码里的gradmass和bogenmass两个属性被声明为static静态变量,这类变量属于类本身,所有Angle实例共享同一份值,每次调用set方法修改都会覆盖全局的取值。因此你先后创建135°和90°两个Angle实例时,后创建的90°会把全局属性覆盖,最终计算差值时两个实例读取到的度数都是90,结果自然为0。

解决方案

完全符合你「不新增自定义构造器、不修改非静态方法」的要求,仅需要将两个属性的static修饰符删除,改为实例级别的成员变量即可,每个实例会独立保存自己的角度值,不会互相覆盖:

// 仅修改属性定义行,删除static修饰符
private double gradmass = 0;
private double bogenmass = 0;

修改后测试调用Angle.degrees(135).minus(Angle.degrees(90)).getDegrees()即可得到预期的45结果。

内容的提问来源于stack exchange,提问作者Atlas v2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:27:04