2013-03-15 68 views
0

我想在Java中使用get set方法从一个类获取输出值,转换为另一个类。第一类打印结果为0.0获取setter方法

这是一流的。

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

既然你在这里创造

Paper paperone = new Paper(); 

新的对象,你需要调用setPercentage此对象为好。

如果你想percentage场是同为Paper类的每一个对象,然后改变其声明为静态

private static float percentage; 
+0

我试过了,现在可以运行了:) – user2154499 2013-03-15 16:17:09

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

+0

我改变了浮动翻一番,当我使用'私有静态float',因为它的工作原理罗宾钱德说。 – user2154499 2013-03-15 16:18:55

0

total变量是一个int,所以这条线是执行整数运算:

setPercentage((total * 100/ 5000)); 

total小于50的任何值,当乘以100将小于5000,和整数除法运算的结果由5000将为0

角色它作为一个浮子,以获得正确的结果:

setPercentage(((float) total * 100/ 5000)); 
+0

但是我在第二个类中得到了正确的答案,其中代码在没有get set方法的情况下运行。 – user2154499 2013-03-15 16:20:16