【发布时间】:2015-03-14 11:38:43
【问题描述】:
我在学习方法、类、对象和参数。并决定制作自己的程序,但是当我使用参数、对象等时,我得到了错误的结果。 代码如下:
class Resavanje {
double temeA, temeB, temeC, povrsinaS;
public Resavanje(double aX, double aY, double bX, double bY, double cX, double cY) {
// Izracunavanje temena.
temeA = Math.sqrt(Math.pow(bX - cX, 2) + Math.pow(bY - cY, 2));
temeB = Math.sqrt(Math.pow(cX - aX, 2) + Math.pow(cY - aY, 2));
temeC = Math.sqrt(Math.pow(aX - bX, 2) + Math.pow(aY - bY, 2));
}
double uzmiS() {
return ((temeA + temeB + temeC) / 2);
}
// Povrsina trougla sa temenima
double uzmiPovrsinuSaTemenima() {
return Math.sqrt(povrsinaS * (povrsinaS - temeA) * (povrsinaS - temeB) * (povrsinaS - temeC));
}
}
和
public class PoblemTrougla {
public static void main(String[] args) {
Resavanje objekat = new Resavanje(1, 1, 5, 2, 3, 6);
System.out.println(objekat.uzmiPovrsinuSaTemenima());
}
}
当我调用方法 objekat.uzmiPovrsinuSaTemenima() 它应该显示:9.000...7
但结果是-0.0
如果我在 main 方法中使用它:
double s, p, a, b, c;
a = objekat.temeA;
b = objekat.temeB;
c = objekat.temeC;
s = (a + b + c) / 2;
p = Math.sqrt(s * (s - a) * (s - b) * (s - c));
我得到结果9.000...7,这是正确的结果。为什么我在方法中进行计算时不能得到相同的结果?
【问题讨论】: