Java编译错误,无法找到原因

时间:2015-05-23 21:57:47

标签: java

我老师给了我这个问题来解决。

设计ComplexNumber类。

一个。从用户那里获取ComplexNumber。

湾实现increaseValue()以增加real和amp;想象部分由2.

℃。使用toString从main方法打印ComplexNumber。

所以,我写了一个类,它将采用字符串输入,即像#34; 5 + i6"这样的复数。 作为回报,它将给出" 7 + i8"

我尝试了代码,我一次又一次地显示错误。 请帮我解决问题所在。如果你有更好的解决方法,请分享。

public class ComplexNumber{

    int real, imagine; //(When I declare the integers before it shows compile error too)
    public static String complex;

    public static void doit(String str){
        complex=str;
    }

    String []splt = complex.split("\\+");
    real=Integer.parseInt(splt[0])+2; //This line shows error

    splt[1]=splt[1].replaceAll("^[0-9]","");    
    imagine=Integer.parseInt(splt[1])+2;//This line shows error

    public String toString(){ //This line shows error
        return (real+"+"+"i"+imagine);
    }
} //This 2nd bracket is showing error :/

2 个答案:

答案 0 :(得分:0)

您有一些不在方法或构造函数中的语句。你不能在类级别,方法或构造函数之外使用语句。

将这些语句放在方法或构造函数中。

请参阅Oracle Java教程的以下部分:

答案 1 :(得分:0)

您尝试在任何方法上下文之外执行代码,从您的行开始:

String []splt = complex.split("\\+");

在Java中,所有代码都必须在一个方法中。您可能想知道在这种情况下如何执行任何操作。有一种称为main的特殊方法,用作类的入口点。例如,参见hello world program here,它说明了Java程序的基本结构。

**作为旁注,您的任务似乎旨在教您面向对象编程的基础知识,但您的解决方案并非面向对象。指向正确方向的建议是将ComplexNumber视为事物。它可以用"3+4i"之类的字符串构造。这成为数字状态的一部分。然后,您可以使用myNumber.increaseIt()等方法对该数字执行操作。您的工作可能是弄清楚如何从字符串构造ComplexNumber并实现increaseIt()