有构造函数的问题

时间:2016-03-17 23:30:29

标签: java constructor

我是java的新手并试图创建一个简单的代码,检查给定汽车的燃气使用量,每加仑和汽油给定里程数,但每次我尝试初始化变量时,都会给我一些错误。 inTank和mpg表示只允许final,并且构造函数由于某种原因无法初始化变量参数。如果有人能向我解释为什么以及如何解决这个问题,我将不胜感激。发生在Udacity IDE和Ecclipse中。

public class MileagePrinter {
    public static void main(String[] args)
    {
        // your code here
        private double inTank;
        private double mpg;

        public MileagePrinter(double gasInTank, double milesPerGallon) {
        inTank = gasInTank;
        mpg = milesPerGallon;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

重新排序代码......你在主方法中有类变量和构造函数......

它必须看起来像

public class MileagePrinter {
 private double inTank;
 private double mpg;

 public MileagePrinter(double gasInTank, double milesPerGallon) {
      inTank = gasInTank;
      mpg = milesPerGallon;
 }

public static void main(String[] args){

            // your code here

   }
}

答案 1 :(得分:0)

Main方法和constructor方法彼此不同。 Main是执行程序的起点,而constructor用于创建对象。我们需要在constructor方法中使用main,例如

public class MileagePrinter {
    private double inTank;
    private double mpg;

    public MileagePrinter(double gasInTank, double milesPerGallon) {
        inTank = gasInTank;
        mpg = milesPerGallon;
        }

    public static void main(String[] args){
        MileagePrinter pointer = new MileagePrinter(10d, 100d); //create object using constructor           
    }
}

答案 2 :(得分:0)

就个人而言,我个人更喜欢将Main类中的main分开(例如,名称并不重要):

main.java:

public class Main {
    public static void main(String[] args) {
        // your code here
    }
}

前程万里(MileagePrinter.java):

public class MileagePrinter {
    private double inTank;
    private double mpg;

    public MileagePrinter(double gasInTank, double milesPerGallon) {
        inTank = gasInTank;
        mpg = milesPerGallon;
    }
}