Допустимые символы в имени класса Java

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
68
задан netjeff 18 January 2018 в 02:48
поделиться

4 ответа

У Вас может быть почти любой символ, включая большинство символов Unicode! Точное определение находится в Спецификация языка Java под разделом 3.8: Идентификаторы .

идентификатор является последовательностью неограниченной длины цифры Java букв и Java , первый из которых должен быть , Буквы буквы ....

Java и цифры могут быть оттянуты из всего набора символов Unicode... Это позволяет программистам использовать идентификаторы в своих программах, которые записаны на их родных языках.

идентификатор не может иметь того же написания (последовательность символов Unicode) как ключевое слово (В§3.9), булев литерал (В§3.10.3) или пустой литерал (В§3.10.7), или ошибка времени компиляции происходит.

Однако видят этот вопрос для того, необходимо ли сделать это.

57
ответ дан Dukeling 24 November 2019 в 14:20
поделиться

Каждый язык программирования имеет свой собственный ряд правил и соглашения для видов имен, которые Вам разрешают использовать, и язык программирования Java не отличается. Правила и соглашения для именования Ваших переменных могут быть получены в итоге следующим образом:

  • Имена переменной чувствительны к регистру. Имя переменной может быть любым легальным идентификатором — последовательность неограниченной длины букв Unicode и цифр, начавшись с буквы, знак доллара "$" или символ подчеркивания "_". Соглашение, однако, состоит в том, чтобы всегда начинать Ваши имена переменной с буквы, не "$" или "_". Кроме того, символ знака доллара, условно, никогда не используется вообще. Можно найти некоторые ситуации, где автоматически сгенерированные имена будут содержать знак доллара, но имена переменной должны всегда избегать использования его. Подобное соглашение существует для символа подчеркивания; в то время как технически законно начать имя Вашей переменной с "_", этой практике препятствуют. Пробел не разрешен.

  • Последующие символы могут быть буквами, цифрами, знаками доллара или символами подчеркивания. Соглашения (и здравый смысл) относятся к этому правилу также. При выборе названия переменных используйте полные слова вместо загадочных сокращений. Выполнение так сделает Ваш код легче читать и понять. Во многих случаях это также сделает Ваше самодокументирование кода; поля назвали тактовый сигнал, скорость, и механизм, например, намного более интуитивен, чем сокращенные версии, таков как s, c, и g. Также имейте в виду, что имя, которое Вы выбираете, не должно быть ключевым словом или зарезервированным словом.

  • , Если имя Вы выбираете, состоит только из одного слова, произнесите то слово по буквам во всех строчных буквах. Если это состоит больше чем из одного слова, используйте для своей выгоды первую букву каждого последующего слова. Передаточное отношение имен и currentGear являются главными примерами этого соглашения. Если Ваша переменная хранит постоянную величину, такой как static final int NUM_GEARS = 6, соглашение изменяется немного, используя для своей выгоды каждую букву и разделяя последующие слова с символом подчеркивания. Условно, символ подчеркивания никогда не используется в другом месте.

От официальное Учебное руководство .

по Java
16
ответ дан Pang 24 November 2019 в 14:20
поделиться

Я хотел бы добавить к ответу bosnic, что любой допустимый символ валюты законен для идентификатора в Java. thв‚ ¬is является легальным идентификатором, как в‚ ¬this, и в‚ ¬ также. Однако я не могу выяснить, как отредактировать его ответ, таким образом, я вынужден отправить это тривиальное дополнение.

2
ответ дан MetroidFan2002 24 November 2019 в 14:20
поделиться

В дополнение к предыдущим ответам, который стоит отметить, что:

  1. Java позволяет любое обозначение денежной единицы Unicode на имена символа, таким образом, следующее будет все работать:

ВЈvar2 в $var1‚ ¬var3

я полагаю, что использование обозначений денежной единицы происходит в C/C++, где переменные, добавленные к Вашему коду компилятором, традиционно запущенным с '$'. Очевидным примером в Java являются названия .class 'файлы для внутренних классов, которые условно имеют формат' Outer$Inner.class'

  1. , Многие C# и программисты на C++ принимают соглашение размещения 'я' перед интерфейсами (иначе чистые виртуальные классы в C++). Это не требуется, и следовательно не делается в Java, потому что ключевое слово реализаций делает его очень ясным, когда что-то - интерфейс.

Сравните:

класс Сотрудник: общедоступный IPayable//C++

с [1 117]

класс Сотрудник: IPayable//C#

и

класс Сотрудник реализует Подлежащий оплате//Java

  1. , Много проектов используют соглашение размещения подчеркивания перед именами полей, так, чтобы их можно было с готовностью отличить от локальных переменных и параметров, например,

частный двойной _salary;

А крошечное место меньшинства подчеркивание после имени поля, например,

частная двойная зарплата _;

10
ответ дан Garth Gilmour 24 November 2019 в 14:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: