Не выполняется конструктор

270
09 января 2017, 20:53

Файл CleanBackupFolders.java:

import java.io.*;
public class CleanBackupFolders {
    public static void main(String[] args) throws IOException {
        ...
        Settings IniFileObj = new Settings();
        ...
    }
}

Файл Settings.java:

public class Settings {
    public void Settings() {
        System.out.println("Constructor executed!");
    }
}

В первом классе не выполняется вызов конструктора для объекта. Если же после поставить строку

IniFileObj.Settings();

то все, что в этом конструкторе, исполняется. В чем проблема?

Answer 1

В вашем коде несколько проблем:

  1. Вы не создали конструктор. Вы создали метод с именем как у конструктора, но дали ему возвращаемое значение, а конструктор оного не имеет.

  2. Методы в Яве и (переменные тоже) принято именовать с маленькой буквы. Как раз из-за этого вы и ошиблись - конструктор от остальных методов отличается не только отсутствием возвращаемого значения, но и тем, что имя его начинается с большой буквы (точнее - полностью совпадает с именем класса).

Т.е. на самом деле вы вызываете сначала конструктор по умолчанию, который создаётся автоматически, если вы не создали к.-л. другой конструктор. После этого вы вызываете созданный вами обычный метод. Причём т.к. переменную вы создали не по правилам именования, т.е. с большой буквы, на первый взгляд ваш метод вообще выглядит статическим.

Мораль:

Если бы вы уважали конвенции именования, то ошибки бы у вас не возникло.

READ ALSO
маленькое окно с кнопками поверх канвы

маленькое окно с кнопками поверх канвы

Допустим игра отрисовывается на канве, при поражении хочу вывести окошко с результатом и кнопкой продолжить , какие есть варианты ? Вывести...

226
Java - вынос реализации из описания класса

Java - вынос реализации из описания класса

На C++ привык оформлять классы следующим образом

249
VKSdk - получение и обработка сообщений

VKSdk - получение и обработка сообщений

Добрый деньДелаю тут одну программу, с использованием VKSdk

241
Не прибавляются переменные. Java [требует правки]

Не прибавляются переменные. Java [требует правки]

Не прибавляется цифрыНапример, если я введу 2 + 2, то получится 2

261