2016-03-17 4 views
-1

Я новичок в 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; 
     } 
    } 
} 
+4

Почему в вашем 'main()' методе есть конструктор? – bcsb1001

+3

Конструктор и переменные должны быть вне основной функции и в пределах класса. –

+1

У вас нет проблем с вашим конструктором; у вас возникают проблемы с основной синтаксической структурой исходного кода Java ;-) – GhostCat

ответ

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 

    } 
} 
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   
    } 
} 
0

Лично я предпочитаю, чтобы отделить главное в классе 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; 
    } 
} 
Смежные вопросы