Java小白- -在练习时显示不出结果 求各位大佬指教
publicclassTestCirclePassObject{publicstaticvoidmain(String[]args){System.out.println...
public class TestCirclePassObject { public static void main(String[] args) { System.out.println("Radius" + "\t\t" + "Area"); System.out.println(); PassObject po = new PassObject(); Circle c = new Circle(); po.printAreas(c, 5); }}class Circle{ double redius; double pai = 3.14; double mianji = redius * redius * pai; public void findArea() { System.out.println("mianji = " + mianji); }}class PassObject{ public void printAreas(Circle c , int time) { for(int i = 1 ; i <= time ; i++) { c.redius = i; System.out.println(c.redius + "\t\t\t" + c.mianji); } }}结果如图是求面积的 却显示不出面积的值 系统没有报错请问这是怎么回事
展开
2个回答
展开全部
你没有调用计算面积的方法,自然没你要的结果了。再者,整体逻辑有点问题,double redius;//只定义,没有赋值。你的面积是打算在class Circle {}中求的的,而你又打算在
public void printAreas(Circle c, int time) {}中循环后才给redius赋值,但是你调用的面积是在class Circle {}中求的,这样的话,redius还是没有赋值,这样redius就一直保持其默认值0.0了。还有你创建对象了Circle c = new Circle(); 但是没有调用里面的方法如c.findArea();的话,计算面积的结果是没有显示的。
算了,帮人帮到底吧,按照你的转圈思路,我给你改了下:
public class TestCirclePassObject {
public static void main(String[] args) {
System.out.println("Radius" + "\t\t" + "Area");
System.out.println();
double redius= findArea(0.0);//这里任意给一个数,确保方法格式而已
printAreas(redius, 6);
}
public static double findArea(double redius) {
double pai = 3.14;
double mianji= redius * redius * pai;
// System.out.println("mianji = " + mianji);
return mianji;
}
public static double printAreas(double redius, int time) {
for (int i = 1; i <= time; i++) {
redius = i;
System.out.println(redius + " 半径对应面积:" + findArea(i));
}
return redius;
}
/*
Radius Area
1.0 半径对应面积:3.14
2.0 半径对应面积:12.56
3.0 半径对应面积:28.26
4.0 半径对应面积:50.24
5.0 半径对应面积:78.5
6.0 半径对应面积:113.04
*/
}
另一种直接的定义方式,就不用太转圈了:
public class TestCirclePassObject {
public static void main(String[] args) {
System.out.println("Radius" + "\t\t" + "Area");
System.out.println();
printAreas(5);
}
public static double findArea(double redius) {
double pai = 3.14;
double mianji= redius * redius * pai;
// System.out.println("mianji = " + mianji);
return mianji;
}
public static double printAreas(int time) {
double redius=0;
for (int i = 1; i <= time; i++) {
redius = i;
System.out.println(redius + " 半径对应面积:" + findArea(i));
}
return redius;
}
/*
Radius Area
1.0 半径对应面积:3.14
2.0 半径对应面积:12.56
3.0 半径对应面积:28.26
4.0 半径对应面积:50.24
5.0 半径对应面积:78.5
*/
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询