***我试过搜索,但我不明白会发生什么。抱歉。(Java)在构造函数中调用方法?
我正在为学校服务器/客户端项目工作。我在智慧的结尾,我即将放弃。我没有课堂笔记,所以我需要一些帮助。 首先,我会发布给我的指示,然后是我现在的代码,然后是我的问题。
SERVER方向:
三角类必须具有以下实例变量:side_a,side_b,side_c。创建一个静态变量来跟踪创建的三角形对象的数量。还要创建一个静态变量来保存创建的所有Triangle对象的周界总数。
Triangle类的三个参数构造函数应该将三重输入值分配给对象的实例变量。如果不是有效的三角形,则将所有边设置为1.创建一个名为isValid()的单独私有方法。为了表示一个有效的三角形,三角形的任何两边的总和必须大于第三边的总和。没有一方可能是0或负面的。构造函数还应该为count添加1,并调用一个方法来计算,然后将该对象的周长添加到累加器。
三角类必须具有下列方法如上指出:
- 公共布尔is_right()公共布尔is_isoc()
- 公共布尔is_equil()公共布尔is_scal()
公共字符串toString() - 返回三角形三边的值
您还应该向称为calc_perim的Triangle类添加一个方法。此方法将使用Triangle对象的边来计算该对象的边界。
- addTotalPerim。此方法将调用calc_perim并将该对象的外围添加到累加器。
- reduceTotalPerim。该方法应该从累加器中减去该对象的周长。
服务器代码:
public class Triangle {
private int side_a, side_b, side_c;
private static int count;
**//PROBLEM 1: Java tells me 'perim' is not used.**
private static int perim;
private boolean valid;
public Triangle(int s1, int s2, int s3)
{
side_a = s1; side_b = s2; side_c = s3;
**//PROBLEM 2: Java tells me 'v' is not used.**
boolean v = isValid();
if (v = false)
{side_a = 1; side_b = 1; side_c = 1;}
Triangle.count++;
calc_perim(s1,s2,s3);
addTotalPerim();
reduceTotalPerim();
}
private int calc_perim()
{
int perimeterCalc = side_a + side_b + side_c;
return perimeterCalc;
}
private void addTotalPerim()
{
Triangle.perim += calc_perim();
}
private void reduceTotalPerim()
{
Triangle.perim -= calc_perim();
}
private boolean isValid()
{
boolean valid1;
if (side_a < 1)
{ valid1 = false;}
else if (side_b < 1)
{ valid1 = false;}
else if (side_c < 1)
{ valid1 = false;}
else if ((side_a + side_b) < side_c || (side_a + side_b) == side_c)
{ valid1 = false;}
else
{ valid1 = true;}
return valid1;
}
public boolean is_right()
{
boolean right;
if (((side_a * side_a) + (side_b * side_b)) == (side_c * side_c))
right = true;
else
right = false;
return right;
}
public boolean is_isoc()
{
boolean isoc;
if (side_a == side_b)
isoc = true;
else if (side_a == side_c)
isoc = true;
else if (side_b == side_c)
isoc = true;
else
isoc = false;
return isoc;
}
public boolean is_equil()
{
boolean equil;
if (side_a == side_b && side_a == side_c)
equil = true;
else
equil = false;
return equil;
}
public boolean is_scal()
{
boolean scal;
if (side_a == side_b || side_a == side_c || side_b == side_c)
scal = false;
else
scal = true;
return scal;
}
public String toString()
{
return "Side 1: " + side_a + " Side 2: " + side_b + " Side 3: " + side_c;
}
}
对不起格式化,但是这个网站有格式化代码,除非我误解的东西...
服务器问题的一个可怕的方式:
什么是正确的方法加/减e通过方法calc_perim获得的周界变量perim?方向说在构造函数中调用calc_perim方法,但我不知道如何,所以我只是让它自己进行计算。
在构造函数中,在调用方法isValid()之后,为什么我通过Java告诉变量'v'未被使用?我是否错误地调用了isValid()? >>>>>如何在构造函数中调用方法?< < < < <
除此之外重大问题,服务器类工作正常。
4.我试图在构造函数中调用这两个函数,我只是猜测,因为我不确定是否正确调用了它们。感谢3和5的帮助,尽管我会尽快回复我的项目。 – magnum482 2014-11-01 19:19:18
@ magnum482,好的,你也可以接受答案 – 2014-11-01 19:20:33
是的,如果一切正常,我会接受你的,因为你也帮助过其他方法。 – magnum482 2014-11-01 19:26:48