我正在尝试在Java中使用get set方法从一个类获取输出值到另一个类。第一类将结果打印为0.0
。
这是第一类。
Paper paperone = new Paper();
float a = paperone.getPercentage();
System.out.println("percentage " + a);
这是第二节课:
private float percentage;
public float getPercentage() {
return percentage; }
public void setPercentage(float percentage) {
this.percentage = percentage; }
这是我想从中获得结果的地方:
int total;
total = count+count1+count2;
System.out.println("The total is : ");
setPercentage((total * 100/ 5000));
System.out.println("The percentage for: " + getPercentage() + "%");
我从正在读取的行列表中获取计数。当我从第二堂课打印时,我得到了正确的结果,但不是第一堂课。有什么我做错了吗?
谢谢。
答案 0 :(得分:0)
Paper paperone = new Paper();
float a = paperone.getPercentage();
System.out.println("percentage " + a);
您创建了Paper
类的新对象。其float percentage
字段初始化为0.0f
。您没有致电setPercentage()
,因此percentage
仍为0.0f
。
顺便说一句,请使用double
代替float
。
答案 1 :(得分:0)
您的total
变量是int
,因此此行正在执行整数数学运算:
setPercentage((total * 100/ 5000));
total
小于50的任何值,乘以100时将小于5000,整数除以5000的结果将为0.
将其转换为浮点数以获得正确的结果:
setPercentage(((float) total * 100/ 5000));
答案 2 :(得分:0)
因为你在这里创建了新对象
Paper paperone = new Paper();
您还需要为此对象调用setPercentage
。
如果您希望percentage
类的每个对象的Paper
字段相同,则将其声明更改为静态
private static float percentage;