***我试着搜索,但我无法理解会发生什么。遗憾。
我正在为学校开发服务器/客户端项目。我在我的智慧结束,我即将放弃。我没有课堂笔记,所以我需要一些帮助。 首先,我会发布给出的指示,然后是我当前的代码,然后是我的问题。
服务器方向:
Triangle类必须具有以下实例变量:side_a,side_b,side_c。创建一个静态变量以跟踪创建的三角形对象的数量。还要创建一个静态变量来保存所有创建的Triangle对象的周长。
Triangle类的三参数构造函数应将三个输入值分配给对象的实例变量。如果不是有效三角形,则将所有边设置为1.创建一个名为isValid()的单独私有方法。三角形的任意两边的总和必须大于第三个以表示有效三角形。没有一方可能是0或负面。构造函数还应该向count添加1并调用方法来计算,然后将该对象的周长添加到累加器。
Triangle类必须具有上述方法:
public String toString() - 返回三角形的3个边的值
您还应该在Triangle类中添加一个名为calc_perim的方法。此方法将使用Triangle对象的边来计算该对象的周长。
服务器代码:
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;
}
}
很抱歉格式化但是这个网站有一种很糟糕的格式化代码的方式,除非我误解了某些内容......
服务器问题:
将通过方法calc_perim获得的周长加/减到varible perim的正确方法是什么?方向说在构造函数中调用calc_perim方法,但我无法弄清楚如何,所以我只是让它自己进行计算。
在构造函数中,在调用方法isValid()之后,为什么我告诉Java变量&#39; v&#39;未使用?我是否错误地调用了isValid()?的&GT;&GT;&GT;&GT;&GT;如何在构造函数中调用方法? &LT;&LT;&LT;&LT;&LT;
除了那个主要问题,服务器类工作正常。
答案 0 :(得分:0)
未使用&#34;&#34;来自Java编译器的消息在技术上是一个警告,而不是一个错误,因此如果您真的想要,即使消息仍然有效,您也可以运行您的程序。但是你的直觉是正确的 - 忽略这些信息是一个坏主意。
在这种情况下,您的代码存在严重问题。您正在拨打v = false
,这意味着您将false
的值分配给v
到v == false
。将其更改为==
。通过使用{{1}},您可以进行比较,这是您真正想要的。
答案 1 :(得分:0)
建议:
在Triangle类中,初始化静态变量。
private static int count = 0; private static int perim = 0;
在Triangle构造函数中,更改
if(v = false)
到
if (v == false)
将calc_perim更改为:
private void addTotalPerim() { perim + = calc_perim(); } private void reduceTotalPerim() { perim - = calc_perim(); }
为什么在addTotalPerim()之后调用reduceTotalPerim(),没有明白这一点。
isValid函数应检查所有组合,如a + b&gt; c,b + c&gt; a,c + a&gt; b,如果任何一个失败应该无效