- Java переменные
- Объявление переменных в java
- Правила именования переменных в java
- Типы данных в java
- Примитивные типы данных
- Тип String
- Ссылочные типы данных
- Комментариев к записи: 15
- Как вы знаете тип переменной в java?
- 7 ответов
- Переменные Java их типы: объявление и инициализация
- Типы переменных Java
- Объявление переменной Java
- Назначение
- Чтение
- Правила и соглашения среди разработчиков
- Вывод
Java переменные
В предыдущих уроках мы говорили о том, что класс в Java состоит из атрибутов и методов. Переменные могут быть атрибутами класса, параметрами метода или могут использоваться в программе для краткосрочного хранения данных. В языке Java все переменные должны быть объявлены, перед тем, как они будут использоваться.
Объявление переменных в java
При объявлении переменной, в следующей последовательности указываются:
- тип данных (в данном примере — int — переменная содержит целое число),
- имя переменной (в данном примере имена — x и y),
- начальное значение переменной или, другими словами, инициализация переменной. В данном примере переменным x и y присвоены значения 1 и 2. Однако, это не является обязательным условием при объявлении переменной.
Пример: объявление переменных без инициализации:
После каждой строки при объявлении переменных необходимо ставить точку с запятой «;».
Если нужно объявить несколько переменных одного типа, то это также можно сделать одной строкой, указав имена переменных через запятую.
Правила именования переменных в java
- Имя переменной должно начинаться с буквы (маленькой) и состоять из букв (Unicode) цифр и символа подчеркивания «_». Технически возможно начать имя переменной также с «$» или «_», однако это запрещено соглашением по оформлению кода в Java (Java Code Conventions). Кроме того, символ доллара «$», по соглашению, никогда не используется вообще. В соответствии с соглашением имя переменной должно начинаться именно с маленькой буквы (с заглавной буквы начинаются имена классов). Пробелы при именовании переменных не допускаются.
- Имя переменной не должно бытьключевым или зарезервированным словом языка Java.
- Имя переменной чувствительно к регистру. newVariable и newvariable — разные имена.
- При выборе имени переменных, следует использовать полные слова вместо загадочных аббревиатур. Это сделает ваш код более удобным для чтения и понимания. Во многих случаях это также сделает ваш код самодокументируемым.
- Если выбранное вами имя переменной состоит только из одного слова — запишите его маленькими буквами. Если оно состоит из более чем одного слова, то отделяйте каждое последующее слово в имени переменной заглавной буквой. Например: superCounter, myDomesticAnimal
- Если переменная сохраняет постоянное значение, то каждое слово следует писать заглавными буквами и отделять при помощи символа подчеркивания. Пример: static final int NUMBER_OF_HOURS_IN_A_DAY = 24
Типы данных в java
Каждая переменная и каждое выражение в Java обладает типом и этот тип строго определен.
Примитивные типы данных
В Java существует 8 примитивных типов данных:
- byte (целые числа, 1 байт)
- short (целые числа, 2 байта)
- int (целые числа, 4 байта)
- long (целые числа, 8 байтов)
- float (вещественные числа, 4 байта)
- double (вещественные числа, 8 байтов)
- char (символ Unicode, 2 байта)
- boolean (значение истина/ложь, 1 байт)
Эти 8 типов служат основой для всех остальных типов данных. Примитивные типы обладают явным диапазоном допустимых значений.
byte — диапазон допустимых значений от -128 до 127
Переменные типа byte полезны при работе с потоком данных, который поступает из сети или файла.
short — диапазон допустимых значений от -32768 до 32767
int — диапазон допустимых значений от -2147483648 до 2147483647
Тип int используется чаще при работе с целочисленными данными, нежели byte и short, даже если их диапазона хватает. Это происходит потому, что при указании значений типа byte и short в выражениях, их тип все равно автоматически повышается до int при вычислении.
long — диапазон допустимых значений от -9223372036854775808 до 9223372036854775807
Тип удобен для работы с большими целыми числами.
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;»
Во время инициализации переменных Вы указываете их тип, тем самым повторно объявляя их.
Спасибо за внимательность, исправила.
Cat ourcat=new cat();
1.А зачем присваивать переменной ourcat экземпляр класса Cat ?
2.допустим тип переменной int говорит о том что переменная этого типа будет целым числом, тип char о том что переменная будет символом ,а тип Cat о чем говорит? что переменная будет что ?
1. иначе она NULL будет
2. что переменная будет котом. тип Cat это указание того, что переменная может использовать методы из класса Cat и атрибуты у нее такие как описаны в классе Cat.
В предыдущем уроке перед вашим комментарием я отвечала Дмитрию и довольно подробно все расписала. Прочитайте, может поймете, если не поймете, то просто пока запомните эту конструкцию, может поймете в будущем на практике
Здравствуйте!
Программирую на С++ . Решил посмотреть на Java. И сразу же наткнулся на ваш сайт.
Я так понимаю Java — это упрощенный C++. Так вот = это перегруженный оператор присвоения,тоесть перегруженная функция.
из за того, что у Java подобный синтаксис — считать его упрощенным С++ неправильно
Как передать значение одной переменной другой, при условии что они разных типов? Например, от типа byte типу float?
преобразование переменных описано в уроке 7 http://study-java.ru/uroki-java/urok-7-preobrazovanie-tipov-v-java/ но конкретно перевода byte to float там нет, поэтому придеся гуглить
преобразование byte to float можно сделать с помощью кастинга например
float с;
byte а = (byte)c; вопрос в том а зачем оно вам нужно? Ведь при таком действии у float с будет отрезано все до размера byte и ваши значения просто будут неккоректными 🙂 но в джава все возможно !
Источник
Как вы знаете тип переменной в java?
допустим, я объявляю переменную:
и я хочу знать, какой это тип, т. е. выход должен быть java.lang.String Как это сделать?
7 ответов
Если вам нужно имя, используйте метод Мартина. Если вы хотите знать, является ли это экземпляр определенного класса:
boolean b = a instanceof String
я узнал из поисковой системы(мой английский очень плохой, поэтому код. ) Как получить тип переменной? АП :
Я хотел бы расширить ответ Мартина есть.
его решение довольно приятно, но его можно настроить, чтобы любой «тип переменной» мог быть напечатан таким образом.(На самом деле это тип значения, еще по теме). Не так сильно изменено, как указывает на возможность.
его решение было:
если вы хотите, чтобы он работал с чем угодно, вы можете сделать это:
в этом случае примитив будет просто обернут в Обертка. В этом случае вы получите объект примитива.
Я сам использовал его так:
используйте функцию перегрузки оператора java
Я согласен с тем, что сказал Иоахим Зауэр, невозможно узнать (тип переменной! не тип значения!) если ваша переменная не является атрибутом класса (и вам нужно будет получить поля класса, получите правильное поле по имени. )
на самом деле для меня это совершенно невозможно что-либо a.xxx().yyy() метод даст вам правильный ответ, так как ответ будет отличаться на том же самом объекте в соответствии с контекстом, в котором вы вызываете этот метод.
как teehoo сказал, Если вы знаете при компиляции определенного списка типов для тестирования вы можете использовать instanceof, но вы также получите подклассы, возвращающие true.
одним из возможных решений также было бы вдохновить себя от реализации java.lang.reflect.Field и создайте свой собственный Field класс, а затем объявите все свои локальные переменные как этот пользовательский Field реализация. но вам лучше найти другое решение, мне действительно интересно, зачем нужен тип переменной, а не только тип значения?
Я думаю, что у нас есть здесь несколько решений:
- предварительная размере может быть решением.
почему? В Java все классы наследуются от класса Object. Поэтому, если у вас есть переменная, и вы хотели бы знать, какой тип это будет работать.
Источник
Переменные Java их типы: объявление и инициализация
Переменная Java – это часть памяти, которая может содержать значение данных, она имеет тип данных.
Переменные обычно используются для хранения информации, необходимой вашей Java-программе для выполнения своей работы. Это может быть информация любого типа, от текстов, кодов(например, кодов стран, кодов валют и т. д.) До цифр, временных результатов многоступенчатых расчетов и т. д.
В приведенном ниже примере кода метод main() содержит объявление единственной целочисленной переменной с именем number. Значение сначала устанавливается равным 10, а затем добавляется 20.
Типы переменных Java
В Java есть 4 типа переменных:
- Нестатические поля;
- Статические поля;
- Локальные;
- параметры.
- Нестатическое поле – это переменная, которая принадлежит объекту. Объекты сохраняют свое внутреннее состояние в нестатических полях. Нестатические поля также называются переменными экземпляра, поскольку они принадлежат экземплярам(объектам) класса.
- Статическое поле – это переменная, которая принадлежит классу. Статическое поле имеет одинаковое значение для всех объектов, которые обращаются к нему. Статические поля также называются переменными класса.
- Локальная переменная – это переменная, объявленная внутри метода. Она доступна только внутри метода, который ее объявил.
- Параметр – это переменная, которая передается методу при вызове метода. Параметры также доступны только внутри метода, который их объявляет, хотя им присваивается значение при вызове метода.
Объявление переменной Java
Как именно объявляется переменная, зависит от типа(нестатическая, статическая, локальная, параметр).
Вот стандартный код как объявить переменную в Java:
Вместо слова type вы пишете тип данных. Аналогично, вместо слова name вы пишете имя.
Вот пример с именем myVariable типа int.
Вот примеры инициализации всех примитивных типов данных в Java:
Объявление типов объектов:
Обратите внимание на заглавную первую букву типов объектов.
Когда переменная указывает на объект, она называется «ссылкой» на объект.
Назначение
Присвоение значения переменной следует этому шаблону:
Вот три конкретных примера, которые присваивают значения трем различным переменным с разными типами данных:
Первая строка назначает байтовое значение 127 байтовой переменной с именем myByte. Вторая строка присваивает значение с плавающей точкой 199.99 переменной с плавающей точкой с именем myFloat. Третья строка присваивает значение String(текст), это текст String с именем myString.
Вы также можете присвоить значение уже тогда, когда она объявлена. Вот как это делается:
Чтение
Вы можете прочитать значение переменной, написав ее имя везде, где она может быть использованы в коде. Например, в качестве правой части присваивания, в качестве параметра для вызова метода или внутри арифметического выражения. Например:
Правила и соглашения среди разработчиков
Существует несколько правил и соглашений, касающихся именования переменных:
- Имена чувствительны к регистру. Имя money не совпадает с Money или MONEY.
- Должны начинаться с буквы или символа $ или _.
- После первого символа, имя также может содержать цифры(помимо букв, символа $ и символа _).
- Не могут быть равны зарезервированным ключевым словам в Java. Например, слова int или for являются зарезервированными.
Вот несколько допустимых примеров имен:
Есть также несколько соглашений по именованию. Этим соглашениям нет необходимости следовать. Однако многие разработчики привыкли к этим соглашениям. Поэтому им будет проще читать ваш код, если вы будете следовать им, и вам будет легче читать код других разработчиков. Соглашения:
- Пишутся в нижнем регистре.
- Если состоят из нескольких слов, каждое слово после первого слова имеет свою первую букву, написанную в верхнем регистре. Например, variableName или bigApple.
- Даже если это разрешено, не начинайте с $ или _.
- Статические конечные поля(константы) имеют имена в верхнем регистре, обычно с использованием _ для разделения слов в имени. Например, EXCHANGE_RATE или COEFFICIENT.
Вывод
Из Java 10 можно заставить компилятор вывести тип локальной переменной, посмотрев, какой фактический тип назначен при объявлении. Это усовершенствование ограничено локальными переменными, индексами в циклах for-each и объявленными в циклах for.
Чтобы увидеть, как работает вывод такого типа, сначала приведем пример:
В Java 10 больше нет необходимости указывать тип при объявлении, если тип можно вывести из значения, присвоенного переменной.
Обратите внимание на ключевое слово var, используемое перед именем вместо типа String. Из присвоенного значения компилятор может видеть, что тип переменной должен быть String, поэтому вам не нужно писать это явно.
Источник