Spec-Zone .ru
спецификации, руководства, описания, API
|
Поскольку Вы учились в предыдущем уроке, объектно-ориентированные памяти его состояние в полях.
int cadence = 0; int speed = 0; int gear = 1;
Каков Объект? обсуждение, представленное Вы полям, но у Вас, вероятно, есть все еще несколько вопросов, таких как: Каковы правила и соглашения для того, чтобы назвать поле? Кроме того int
, что другие типы данных там? Поля должны быть инициализированы, когда они объявляются? Поля присваиваются значение по умолчанию, если они явно не инициализируются? Мы исследуем ответы на такие вопросы в этом уроке, но прежде, чем мы сделаем, есть несколько технических различий, которые следует сначала узнать. В языке программирования Java оба используются термины "поле" и "переменная"; это - общий источник беспорядка среди новых разработчиков, так как оба часто, кажется, обращаются к той же самой вещи.
Язык программирования Java определяет следующие виды переменных:
static
ключевое слово. Нестатические поля также известны как переменные экземпляра, потому что их значения уникальны для каждого экземпляра class (к каждому объекту, другими словами); currentSpeed
из одного велосипеда независимо от currentSpeed
из другого.static
модификатор; это говорит компилятору, что есть точно одна копия этой существующей переменной, независимо от того, сколько времен class инстанцировали. Поле, определяющее число механизмов для определенного вида велосипеда, могло быть отмечено как static
так как концептуально то же самое число механизмов применится ко всем экземплярам. Код static int numGears = 6;
создал бы такое статическое поле. Дополнительно, ключевое слово final
мог быть добавлен, чтобы указать, что число механизмов никогда не будет изменяться.int count = 0;
). Нет никакого специального ключевого слова, определяющего переменную как локальный; то определение прибывает полностью из расположения, в котором переменная объявляется — который является между открытием и закрывающими фигурными скобками метода. Также, локальные переменные только видимы к методам, в которых они объявляются; они не доступны от остальной части class.Bicycle
class и в main
метод "Привет Мир!" приложение. Вспомните что подпись для main
метод public static void main(String[] args)
. Здесь, args
переменная является параметром к этому методу. Важная вещь помнить состоит в том, что параметры всегда классифицируются как "переменные" не "поля". Это применяется к другим принимающим параметр конструкциям также (таким как конструкторы и обработчики исключений), что Вы узнаете позже в учебном руководстве.Однако остаток от этого учебного руководства использует следующие общие руководящие принципы, обсуждая поля и переменные. Если мы говорим о "полях вообще" (исключая локальные переменные и параметры), мы можем просто сказать "поля". Если обсуждение применяется ко "всем вышеупомянутым", мы можем просто сказать "переменные". Если контекст призовет к различию, то мы используем определенные термины (статическое поле, локальные переменные, и т.д.) как соответствующие. Можно также иногда видеть термин "элемент", используемый также. Поля типа, методы, и вложенные типы все вместе вызывают его элементами.
$
", или символ подчеркивания"_
". Соглашение, однако, состоит в том, чтобы всегда начинать Ваши имена переменной с буквы, не"$
"или"_
". Дополнительно, символ знака доллара, условно, никогда не используется вообще. Можно найти некоторые ситуации, где автоматически сгенерированные имена будут содержать знак доллара, но Ваши имена переменной должны всегда избегать использования его. Подобное соглашение существует для символа подчеркивания; в то время как технически законно начать имя Вашей переменной с"_
", этой практике обескураживают. Пробел не разрешается.cadence
, speed
, и gear
, например, намного более интуитивны чем сокращенные версии, такой как s
, c
, и g
. Также имейте в виду, что имя, которое Вы выбираете, не должно быть ключевым словом или зарезервированным словом.gearRatio
и currentGear
главные примеры этого соглашения. Если Ваша переменная хранит постоянную величину, такой как static final int NUM_GEARS = 6
, соглашение изменяется немного, написание прописными буквами каждая буква и разделение последующих слов с символом подчеркивания. Условно, символ подчеркивания никогда не используется в другом месте.