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); } }}结果如图是求面积的 却显示不出面积的值 系统没有报错请问这是怎么回事 展开
 我来答
飞云祥66
2018-08-13 · TA获得超过744个赞
知道小有建树答主
回答量:262
采纳率:70%
帮助的人:87.9万
展开全部

你没有调用计算面积的方法,自然没你要的结果了。再者,整体逻辑有点问题,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
   */   
}
百度网友fae7cd1
2018-08-13 · 超过122用户采纳过TA的回答
知道小有建树答主
回答量:233
采纳率:76%
帮助的人:123万
展开全部
一开始类circle的radius=0,mianji=0,JAVA没初始化还能有默认值,换c语言没默认值问题就大了,po只是给对应的radius赋值,面积并没有改变,所以一直都是0。
解决办法,写构造函数,传入半径时求mianji,
public circle(int radius)
{
this.mianji=.......;
}

这样,c(i);就是半径为i的圆,面积也会求出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式