0

我正在尝试在 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() + "%");

我从正在读取的行列表中获取计数。当我从第二类打印时,我得到了正确的结果,但不是从第一类打印。有什么我做错了吗?

谢谢你。

4

3 回答 3

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.

于 2013-03-15T16:04:23.237 回答
0

你的total变量是一个int,所以这一行正在执行整数数学:

setPercentage((total * 100/ 5000));

任何total小于 50 的值,乘以 100 将小于 5000,整数除以 5000 的结果将为 0。

将其转换为浮点数以获得正确的结果:

setPercentage(((float) total * 100/ 5000));
于 2013-03-15T16:05:30.783 回答
0

由于您在这里创建了新对象

Paper paperone = new Paper();

您还需要调用setPercentage此对象。

如果您希望类percentage的每个对象的字段都相同,Paper则将其声明更改为静态

private static float percentage;
于 2013-03-15T16:07:38.967 回答