非法启动表达错误和编译困难

时间:2015-11-26 18:23:16

标签: java error-handling

import java.lang.Math;

public class math
{
    private double xone,xtwo,yone,ytwo,x1,x2,y1,y2;
    private double distance;

    public void main(String[] args)
    {
        public distance()
        {
            setNums(0);
        }

        public setDistance()
        {
            setNums(x1,x2,y1,y2);
        }
        public void setNums()
        {
            xone = x1;
            xtwo = x2;
            yone = y1;
            ytwo = y2;
        }

        public void calcDistance()
        {
            distance = Math.sqrt((xtwo - xone)*(xtwo - xone) + (ytwo -            yone)*(ytwo - yone));
        }

        public String toString()
        {
            String output = " ";
            output += "the distance is " + distance;
            return output;
        }
    }
}

我不确定为什么这个程序不能编译。唯一的错误是非法开始表达和遗失;但我不相信我错过任何一个;

2 个答案:

答案 0 :(得分:0)

你的main(String [] args)需要是静态的还是公共的。

答案 1 :(得分:0)

更改

public distance()

public math()

构造函数应与类名相同。

更改

public setDistance()

public void setDistance()

除此之外,setNums()方法定义显示在调用它时传递它们时没有任何参数。

您已将大多数方法保留在main内。将它们取出并保持在同一级别。

我做了一些改动,所以它可以编译。你需要弄清楚你想要实现的目标。

import java.lang.Math;

public class MathTest{
    private double xone, xtwo, yone, ytwo, x1, x2, y1, y2;
    private double distance;

    public static void main(String[] args) {

    }

    public MathTest() {
        setNums();
    }

    public void setDistance() {
        setNums();
    }

    public void setNums() {
        xone = x1;
        xtwo = x2;
        yone = y1;
        ytwo = y2;
    }

    public void calcDistance() {
        distance = Math.sqrt((xtwo - xone) * (xtwo - xone) + (ytwo - yone) * (ytwo - yone));
    }

    public String toString() {
        String output = " ";
        output += "the distance is " + distance;
        return output;
    }
}