что такое значение переменной java
Переменные в Java
Java является объектно-ориентированным языком, которому свойственна абстракция, однако для прикладных задач всегда приходится оперировать известными параметрами. В программировании они называются переменными. Чем java переменная отличается от объекта?
Всё просто – переменная является ячейкой в памяти, где хранится её значение. Любое действие – прямая работа с этим участком памяти. Объект же является более комплексной величиной. Он занимает определённый диапазон памяти, взаимодействие осуществляется через некую передаточную функцию (методы), выраженную в параметрах объекта.
В данной статье мы поговорим именно о переменных, здесь это совсем не тривиальное понятие.
Объявляются переменные java так:
Здесь же при объявлении можно присвоить значение.
тип_данных имя_переменной = значение_переменной;
Также можно объявить одновременно несколько переменных, просто перечисляя их через запятую.
тип_данных имя_переменной1, имя_переменной2…;
Классификация по принадлежности
Выделяется четыре типа java переменных:
Пусть у нас есть несколько объектов одного класса Automobile(). Помимо общих параметров у них есть уникальные, скажем, максимальная скорость maxSpeed(). Их можно инициировать в теле программы, а можно хранить в нестатических полях класса (объявленных без добавления слова static). Таким образом, каждый экземпляр будет обладать индивидуальным параметром, не зависящим от скоростей других объектов.
Переменная класса, или статическая переменная java, напротив, объявляется исключительно с применением слова static. В данном случае её значение будет одинаковым для всех экземпляров. В случае того же автомобиля, введём параметр gearsNum – число передач. Для всех экземпляров оно будет равно 6.
Необязательный модификатор final позволяет присвоить значение переменной только один раз. За соблюдением этого следит компилятор.
Локальные переменные и методы в java неизменно связаны. В последних часто фигурируют вспомогательные параметры, которые в дальнейшем коде не нужны. Для объявления локальной переменной нет особой формы инициализации, границы её действия зависят лишь от места объявления. В данном случае — в фигурных скобках внутри метода. При выходе из него переменная будет уничтожена, поэтому обратиться к ней будет уже нельзя.
Крайний случай локальных переменных — это параметры. В частности, классический пример «Hello, World!»:
Здесь сразу два параметра. Первая — собственно, «Hello, World!», вторая — аргумент строки args в main.
Классификация по видимости
На основании описанного выше, можно проследить ещё одно деление – по видимости переменных. Существует 4 группы:
Несмотря на то, что приватные элементы доступны внутри класса, вопрос: «как обращаться к private java переменным?» всё же имеет ответ. Для того, чтобы иметь возможность извне поменять значение приватного параметра, достаточно внутри того же класса создать публичный метод. Например так:
Таким образом, в случае необходимости вы легко сможете изменить значение private переменной.
Указатели — ещё один вариант глобальных переменных. Вспомните, для создания экземпляра объекта мы используем следующую запись:
класс_объекта имя_указателя = new класс_объекта;
Такие переменные называются ссылочными переменными.
Java является объектно-ориентированным языком, которому свойственна абстракция, однако для прикладных задач всегда приходится оперировать известными параметрами. В программировании они называются переменными. Чем java переменная отличается от объекта?
Всё просто – переменная является ячейкой в памяти, где хранится её значение. Любое действие – прямая работа с этим участком памяти. Объект же является более комплексной величиной. Он занимает определённый диапазон памяти, взаимодействие осуществляется через некую передаточную функцию (методы), выраженную в параметрах объекта.
В данной статье мы поговорим именно о переменных, здесь это совсем не тривиальное понятие.
Объявляются переменные java так:
Здесь же при объявлении можно присвоить значение.
тип_данных имя_переменной = значение_переменной;
Также можно объявить одновременно несколько переменных, просто перечисляя их через запятую.
тип_данных имя_переменной1, имя_переменной2…;
Классификация по принадлежности
Выделяется четыре типа java переменных:
Пусть у нас есть несколько объектов одного класса Automobile(). Помимо общих параметров у них есть уникальные, скажем, максимальная скорость maxSpeed(). Их можно инициировать в теле программы, а можно хранить в нестатических полях класса (объявленных без добавления слова static). Таким образом, каждый экземпляр будет обладать индивидуальным параметром, не зависящим от скоростей других объектов.
Переменная класса, или статическая переменная java, напротив, объявляется исключительно с применением слова static. В данном случае её значение будет одинаковым для всех экземпляров. В случае того же автомобиля, введём параметр gearsNum – число передач. Для всех экземпляров оно будет равно 6.
Необязательный модификатор final позволяет присвоить значение переменной только один раз. За соблюдением этого следит компилятор.
Локальные переменные и методы в java неизменно связаны. В последних часто фигурируют вспомогательные параметры, которые в дальнейшем коде не нужны. Для объявления локальной переменной нет особой формы инициализации, границы её действия зависят лишь от места объявления. В данном случае — в фигурных скобках внутри метода. При выходе из него переменная будет уничтожена, поэтому обратиться к ней будет уже нельзя.
Крайний случай локальных переменных — это параметры. В частности, классический пример «Hello, World!»:
Здесь сразу два параметра. Первая — собственно, «Hello, World!», вторая — аргумент строки args в main.
Классификация по видимости
На основании описанного выше, можно проследить ещё одно деление – по видимости переменных. Существует 4 группы:
Несмотря на то, что приватные элементы доступны внутри класса, вопрос: «как обращаться к private java переменным?» всё же имеет ответ. Для того, чтобы иметь возможность извне поменять значение приватного параметра, достаточно внутри того же класса создать публичный метод. Например так:
Таким образом, в случае необходимости вы легко сможете изменить значение private переменной.
Указатели — ещё один вариант глобальных переменных. Вспомните, для создания экземпляра объекта мы используем следующую запись:
класс_объекта имя_указателя = new класс_объекта;
Такие переменные называются ссылочными переменными.
Java переменные
В предыдущих уроках мы говорили о том, что класс в Java состоит из атрибутов и методов. Переменные могут быть атрибутами класса, параметрами метода или могут использоваться в программе для краткосрочного хранения данных. В языке Java все переменные должны быть объявлены, перед тем, как они будут использоваться.
Объявление переменных в java
При объявлении переменной, в следующей последовательности указываются:
Пример: объявление переменных без инициализации:
После каждой строки при объявлении переменных необходимо ставить точку с запятой «;».
Если нужно объявить несколько переменных одного типа, то это также можно сделать одной строкой, указав имена переменных через запятую.
Правила именования переменных в java
Типы данных в java
Каждая переменная и каждое выражение в Java обладает типом и этот тип строго определен.
Примитивные типы данных
В Java существует 8 примитивных типов данных:
Эти 8 типов служат основой для всех остальных типов данных. Примитивные типы обладают явным диапазоном допустимых значений.
Переменные типа byte полезны при работе с потоком данных, который поступает из сети или файла.
Тип int используется чаще при работе с целочисленными данными, нежели byte и short, даже если их диапазона хватает. Это происходит потому, что при указании значений типа byte и short в выражениях, их тип все равно автоматически повышается до int при вычислении.
Тип удобен для работы с большими целыми числами.
float — диапазон допустимых значений от
Удобен для использования, когда не требуется особой точности в дробной части числа.
double — диапазон допустимых значений от
Математические функции такие как sin(), cos(), sqrt() возвращают значение double
char — символьный тип данных представляет собой один 16-битный Unicode символ. Он имеет минимальное значение ‘\ u0000’ (или 0), и максимальное значение ‘\ uffff’ (или 65535 включительно). Символы char можно задавать также при помощи соответствующих чисел. Например символ ‘Ы’ соответствует числу 1067. Рассмотрим на примере:
Вывод этой программы будет:
Небольшой пример того, как узнать, какому числу соответствует символ. Основан на претиповании данных.
На выводе программа показывает, что символу 'J' соответствует число 74.
boolean — предназначен для хранения логических значений. Переменные этого типа могут принимать только одно из 2х возможных значений true или false.
Тип String
Тип String не является примитивным типом данных, однако это один из наиболее используемых типов в Java. String предназначен для хранения строк текста. Несколько примеров использования String
Для строк определен оператор «+»
Ссылочные типы данных
В ссылочные типы входят все классы, интерфейсы, массивы. Описанный выше тип String также относится к ссылочным типам. Этот класс из стандартной библиотеки Java.
Также существуют классы-оболочки:
В отличие от примитивных типов, они пишутся с заглавной буквы. Эти типы соответствуют примитивным типам, однако являются ссылочными. Их классы cодержат методы для преобразования типов, а также другие константы и методы полезные при работе с примитивными типами данных.
В качестве типа также выступает любой созданный нами класс при создании инстанции класса. Вспомним прошлый урок, где мы создали класс Cat, а потом создали переменную ourcat типа Cat при создании экземпляра класса.
На этом закончим наше знакомство с переменными и типами в Java.
Итак, в этом уроке мы узнали какие бывают типы данных, научились объявлять переменные. В следующем уроке рассмотрим приведение типов.
Комментариев к записи: 15
Вопрос по типу String.
String myString = new String(«The weather was fine»);
Тут все понятно: создается объект myString класса(типа) String и методу-конструктору этого класса передается «The weather was fine» в качестве параметра.
Тогда что происходит здесь:
String myString = «The weather was fine»;
И в первом и во втором случае создается и инициализируется переменная типа String второй способ записи короче, и обычно используется он.
Спасибо за ответ (и за ответ по временам года — там все понятно), но тут хотелось бы уточнение. Как я понимаю String — это объектный тип, то есть попросту является классом со своим набором атрибутов и методов, а также имеет конструктор(насколько я правильно понял — это метод класса, имеющий имя своего класса и позволяющий задать параметры при создании объекта этого класса).
Я рассматриваю тип, как класс, а переменную, как объект.
Суть вопроса:
Если:
String myString = new String(«The weather was fine»);
тоже самое что:
String myString = «The weather was fine»;
тогда могу ли я также как во втором случае создавать объекты, например собственного класса, имеющего конструктор с параметрами?
Второй вариант это такая фишка, придуманная для типа String, что бы было проще им пользоваться, так как используется он очень часто, поэтому сделали так чтобы создавать переменную типа стринг было так же просто как и переменные примитивных типов. Но на самом деле String это объектный тип со всеми вытекающими, тут вы правы, поэтому как и для любого объектного типа для String имеется возможность создать объект при помощи ключевого слова new. Для своего собственного класса вы не сможете воспользоваться вторым вариантом при создании объекта.
Еще добавлю следующее пояснение из Java Tutorial
Во втором случае, то что заключено между кавычек является строковым литералом, каждый раз, когда такой литерал встречается в коде, компилятор создает объект типа String c этим значением.
Если с английским хорошо, то можете изучить эту сатью http://www.ntu.edu.sg/home/ehchua/programming/java/j3d_string.html Там подробно расписано про тип String особенно пункт 2.1 посмотрите
Теперь все понятно, спасибо большое 🙂
Во первых, спасибо Вам большое за отличный материал и доступную подачу!
Если я не ошибаюсь, у Вас небольшая ошибка в блоке:
» //объявление переменных типа byte.
byte getByte, putByte;
// инициализация переменных
byte getByte = 0;
byte putByte = 0;»
Во время инициализации переменных Вы указываете их тип, тем самым повторно объявляя их.
Спасибо за внимательность, исправила.
1. иначе она NULL будет
2. что переменная будет котом. тип Cat это указание того, что переменная может использовать методы из класса Cat и атрибуты у нее такие как описаны в классе Cat.
В предыдущем уроке перед вашим комментарием я отвечала Дмитрию и довольно подробно все расписала. Прочитайте, может поймете, если не поймете, то просто пока запомните эту конструкцию, может поймете в будущем на практике
из за того, что у Java подобный синтаксис — считать его упрощенным С++ неправильно
Как передать значение одной переменной другой, при условии что они разных типов? Например, от типа byte типу float?
преобразование переменных описано в уроке 7 http://study-java.ru/uroki-java/urok-7-preobrazovanie-tipov-v-java/ но конкретно перевода byte to float там нет, поэтому придеся гуглить
Переменные в Java
Что такое переменная в Java?
Часто Вы можете услышать такое определение переменной:
Помните, как в школе было: y = x + 1
И в зависимости от того, какие значения принимает переменная x, меняется значение переменной y.
Если x = 1, тогда x+ 1 =2
Если x = 2, тогда x +1 = 3
Типы переменных в Java. Объявление переменной
В Java можно указать, какие именно значения может принимать переменная.
Для этого все переменные сгруппировали в 4 группы:
Примечание: Итого 8 типов переменных (byte, short, int, long, float, double, char, boolean). Многоуважаемый Брюс Эккель выделяет еще и 9-й тип – так называемый тип void («пустое» значение). Но в этой статье мы рассмотрим 8 типов, как это обычно принято. Что же такое тип void мы разберёмся в теме, посвященной методам в Java.
Теперь давайте рассмотрим каждую группу переменных. И начнём с целочисленных.
Целочисленные: byte, short, int, long
Задача 1: 
У Димы 3 яблока, у Ани 2 яблока. Сколько яблок у Димы и Ани вместе?
Как видите, в задаче речь идет о целых яблоках. Не предполагается, что яблоки будут делить на части.
Значит, если бы мы писали код в Java, который бы предполагал решение данной задачи, мы бы использовали для переменных целочисленный тип. Остается понять только какой именно мы бы использовали: byte, short, int или long?
Всегда необходимо отталкиваться от контекста.
Однако чаще всего при написании программ на Java, Вы будете использовать тип int. Это самый распространенный целочисленный тип. Более того, тип int в Java является типом «по умолчанию» для целочисленных типов. Что это значит, Вы узнаете на практике.
А вот и примеры объявления переменных:
Ну что ж, самое время понять за что отвечают переменные с плавающей точкой.
С плавающей точкой: float, double
И снова обратимся к примеру школьной задачи.
Задача 2: 
У Димы 3,5 яблока, у Ани 2,5 яблока. Сколько яблок у Димы и Ани вместе?
Как видно из таблички:
Запомните:
А вот и примеры объявления переменных:
float money; // объявили переменную money типа float
float wage; // объявили переменную wage типа float
float c; // объявили переменную c типа float
double stat; //объявили переменную stat типа double
Символы: char
В Java для char используется кодировка Unicode. Как видно из таблички, диапазон допустимых значений char от 0 до 65536 и при этом занимает 2 байта памяти. Отрицательных значений не существует. На самом деле переменная типа char хранит не сам символ, а его числовой код из таблички Unicode, по этому мы можем проводить целочисленные операции над символами.
Примеры объявления переменных:
char y; //объявили переменную y типа char
char f; //объявили переменную f типа char
Логические: boolean
Логические или их еще называют булевы значения могут принимать только одно из двух возможных значений: true или false.
Только у славян возможен такой разговор:
Это то, что очень удивляет иностранцев, когда они учат, например, украинский или русский язык. Так все-таки да или все-таки нет?
Так вот в языке программирования Java всё очень точно:
Чуть позже Вы поймете где применяется данный тип переменных, когда мы, например, дойдём до темы конструкции ветвления. А пока просто запомните, что есть такой тип. Пусть это будет пока «черной лошадкой» для Вас.
Примеры объявления переменных:
boolean check1; //объявили переменную check1 типа boolean
boolean check2; //объявили переменную check2 типа boolean
Ну вот, теперь Вы знаете за что отвечают эти типы переменных:
Что ещё Вы должны знать?
5 правил выбора названий для переменных:
Например:
Правило №2 – имя переменной, по возможности, должно быть «говорящим»
Например:
int s; // так можно называть переменную, но когда кода много и все переменные имеют не говорящие названия, код очень тяжело читать
int size; // этот вариант более «говорящий», чем первый вариант int s; поскольку понятно из названия, что переменная отвечает за размер чего-то
Может начинаться с :
Не может начинаться с:
Правильно:
Неправильно:
Правило №4 – название переменной, состоящее из 2 и более слов, пишется в CamelStyle
Что такое CamelStyle мы с Вами уже обсудили в этой статьей чуть выше.
Правило №5 – нельзя использовать в названиях переменных эти 54 слова:
abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, null, package, private, protected, public, return, short, static, strictfp, String, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile, while
ПОДЫТОЖИМ:
Всего 4 группы переменных:
Эти 8 типов переменных (byte, short, int, long, float, double, char, boolean) относятся к там называемым примитивным типам переменных.
Прежде чем использовать переменную, её необходимо объявить:
5 правил выбора названий переменных:
Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля.
По всем вопросам звоните:
Или читайте информацию по нашим курсам Java c нуля у нас на сайте.
Java Core для самых маленьких. Часть 3. Переменные
В предыдущей статье мы говорили о типах данных, а теперь поговорим о вытекающей из этого теме, о переменных.
На скриншоте выше продемонстрирован пример создания переменных.
Давайте сразу научимся давать имена переменным правильно. Существует документ Java Code Conventions. В нем указаны правила к написанию кода на Java. Нужно это для того, что бы Java код в разных проектах был написан в едином стиле. Таким образом, новоприбывший на проект программист не будет отвлекаться на новый стиль кода, ведь он будет оформлен так же, как и на других проектах. Эти правила работают и при нейминге переменных.
Итак, переменные принято называть в lowerCamelCase стиле. Сейчас покажу как хорошо, а как плохо:
Вот было значение 1998, а на следующей строке стало 2000. А вот с константой так не получится. Константа гарантирует, что ее значение не изменится на протяжении всего времени выполнения программы. Как создать константу? Очень просто:
Нужно всего лишь дописать ключевое слово final перед типом данных переменной. Для простоты понимания, мы как бы «финализируем» значение переменной и говорим, что это значение конечное.
Обратим внимание на имя константы. Когда мы даем имя константе, то должны делать это в стиле SCREAMING_SNAKE_CASE. Давайте исправим мой код:
В целом, вас никогда не погладят по головке за правильный нейминг в коде. Подразумевается, что это нечто естественное при написании кода. Как правила этикета у людей. А вот если вы будете называть ваши переменные и константы абы как, получите незамедлительного леща.
Инициализация переменных
У всех переменных из моих примеров уже было присвоено начальное значение. Процесс присвоения начального значения называется инициализацией переменной. И не обязательно инициализировать переменную во время ее объявления. Java позволяет сделать это и позже.
Во-первых, можно объявлять переменные через запятую (если они одинакового типа):
При этом, смотрите, мы можем некоторые из них инициализировать прямо во время объявления. А теперь инициализируем оставшиеся:
Для инициализации переменных типа char я использовал цепочку присваиваний. Да, и так тоже можно. Хотя используется очень редко.
Если мы попытаемся провести какую-то операция с переменной, у которой нет значения, то получим ошибку.
Оператор присваивания
Литералы
В Java постоянные значения задаются литеральным представлением. Простым языком, при помощи определенных символов мы можем указывать тип данных. Вот например, при работе с целочисленными литералами нам не нужны никакие литералы. Мы просто пишем число 1998; и Java понимает, что это целочисленное значение.
Так, что еще за символы подчеркивания в значении переменной? Это всего-навсего декор. С JDK 7 допустимо указывать знаки подчеркивания, для разбиения больших чисел на разряды, для удобства чтения.
В вышеописанных примерах были литералы для целочисленных десятичных значений. А еще мы можем присвоить целому числу литерал в виде восьмеричного значения. Для этого вам нужно добавить в самом начале значения 0. Но в таком случае, логично, что это значение не сможет содержать цифры 8 и 9, поскольку они выходят за пределы восьмеричной системы счисления.
Мало того, еще мы можем использовать литерал шестнадцатеричных значений. Такие значения обозначают с начальным 0x или 0X, а цифры в пределах от 10 до 15 заменяются символами ABCDEF английского алфавита.
С JDK 7 есть возможность указывать целочисленные литералы в двоичном виде. Для этого вначале значения нужно указать 0b или 0B и соответственно в значениях можно использовать только цифры 0 и 1. В реальности, вам навряд ли понадобятся литералы шестнадцатеричных, восьмеричного или двоичных значений. Однако, знать о них нужно.
Литералы дробных чисел
Но существует и экспоненциальная форма записи этих чисел в виде 2.34e12;
Где число после символа ‘e’ обозначает степень 10-ти. Простыми словами, мы записали 2 целых и 34 сотых умноженное на 10 в 12 степени.
Как и в случае с целочисленными значениями, литералы с плавающей точкой поддерживают нижнее подчеркивание начиная с JDK 7.
Логические литералы
Символьные литералы
Для символьных литералов, которые присутствуют на вашей клавиатуре вы можете использовать одинарные кавычки, обернув ими необходимый вам символ введенный с клавиатуры.
Я не просто так обратил ваше внимание на символы с клавиатуры. Ведь существуют и такие символы, которых на клавиатуре нет, да и на символы они не похожи. Сейчас разберемся.
А вот если символ нельзя ввести непосредственно с клавиатуры, то для ввода таких символов используют ряд управляющих последовательностей. Например, символ переноса строки ‘\n’. Существуют последовательности, которые существуют для ввода значений в восьмеричной и шестнадцатеричной форме. Например, мы захотели ввести букву tu катаканы смайлик: ツ. Берем и пишем:
В данной таблице вы можете посмотреть наиболее используемые последовательности символов:
Когда-то давно, я писал статью про экранирование символом. Настоятельно рекомендую прочитать, как дополнительный материал. Узнаете много интересного.
Строковый литерал
Можно заключить последовательность символов в двойные кавычки и получить так называемую строку.
Динамическая инициализация
Пару слов о таком термине как динамическая инициализация. Ничего сложного, только звучит страшно.
Переменную можно инициализировать другой переменной. Также, допускается инициализация переменной результатом какого-то выражения.
Главное, чтобы тип данных выражения / инициализирующей переменной совпадал с типом данных целевой переменной.
Преобразование и приведение типов
Знаю, вы уже подустали, сделали массу перерывов и подходов. Обещаю, это последняя тема в этой статье.
Часто программисты сталкиваются с ситуацией, когда переменной одного типа приходится присваивать значение другого типа. Если оба типа данных совместимы, их преобразование будет выполнено автоматически. Для автоматического преобразования должно выполняться 2 условия:
Чтобы выполнить преобразование двух несовместимых типов данных, нужно воспользоваться приведением типов. Это явное преобразование одного типа в другой. И выглядит это вот так:
Нужно понимать, что преобразование вы проводите на свой страх и риск. Вы должны быть уверенным в том, что преобразуемое значение помещается в диапазон целевого типа. В противном случае вы получите некорректные данные.
Подводим итоги
В этой статье мы поговорили о многих важных вещах. Узнали, как создавать переменные и константы в Java, и чем они отличаются. Узнали о способах инициализации переменных. Разобрались с тем, что такое литералы и какие они бывают. А так же выполнили преобразование и приведение типов данных.
Скажем спасибо Егору за предоставленный материал.