大家帮我看看这段代码有什么问题,编译不了!!!!

来源:1-3 Java中通过案例学习 try...catch...finally

Zoya

2016-03-30 18:41

http://img.mukewang.com/56fbadec0001406b11380448.jpg

package com.jun;


public class Test {

public static void main(String[] args){

TryCatchTest tct = new TryCatchTest();

int result=tct.test();

}

public class TryCatchTest{

int divider = 10;

int result = 100;

public int test(){

try{

while(result>-1)

result = result+100/divider;

return result;

}catch(Exception e){

e.printStackTrace();

System.out.println("抛出异常了");

return -1;

}

}

}

}


写回答 关注

5回答

  • supernameopen
    2016-03-30 19:14:53
    已采纳

    因为TryCatchTest是一个动态的内部类,创建这样的对象必须有实例与之对应,程序是在静态方法中直接调用动态内部类会报这样错误。这样的错误好比类中的静态方法不能直接调用动态方法。可以把该内部类声明为static。或者不要在静态方法中调用。

    public static class TryCatchTest
    {


    }


  • YYLQuae
    2016-03-30 19:31:50

    你没有输出结果的语句啊,定义了整形变量 result 接受函数的输出结果,但是这个结果你没有处理啊  应该在int result=tct.test(); 后加上输出语句 System.out.println(result);

  • 葛zc
    2016-03-30 19:18:31

    我看错了。。。。

  • 葛zc
    2016-03-30 19:17:02

    因为一个java文件中只能有一个public class,

    你把第二个类放在其他java文件中,或者是将第二个类的public修饰符去掉,就可以了。

  • 北斗星以南
    2016-03-30 19:09:00

    /**

     * 错误在于TryCatchTest类不要放到主程序中....,这个运行正确

     * */


    public class TryCatchTest {

    int divider = 10;

    int result = 100;

    public int test(){

    try{

    while(result>-1)

    result = result+100/divider;

    return result;

    }catch(Exception e){

    e.printStackTrace();

    System.out.println("抛出异常了");

    return -1;

    }

    }

    public static void main(String[] args){

    TryCatchTest tct = new TryCatchTest();

    int result=tct.test();

    }


Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题