Boolean android что это

Обновлено: 04.05.2024

Часто бывает предпочтительней работать с объектами, а не с примитивными типами. Так, например, при использовании коллекций, просто необходимо значения примитивных типов каким-то образом представлять в виде объектов. Для этих целей и предназначены так называемые классы-обертки (wrapper classes). Для каждого примитивного типа Java существует свой класс-обертки. Такой класс является неизменяемым, то есть, для изменения значения необходимо создавать новый объект. К тому же класс-обертка имеет атрибут final и его нельзя наследовать.

Все классы-обертки (кроме Void) реализуют интерфейс java.io.Serializable, поэтому объекты любого класса-обертки (кроме Void) могут быть сериализованы. Это имеет важное значение для «сетевых» пересылок объектов.

Классы-обертки содержат статическое поле TYPE - содержащее объект Class, соответствующий примитивному оборачиваемому типу. Также классы-обертки содержат статические методы для обеспечения удобного манипулирования соответствующими примитивными типами, например, преобразование к строковому виду.

Примитивный типКласс-обертка
byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

Wrapper classes числовых типов (Byte, Short, Integer, Long, Float, Double) наследуются от класса Number, который содержит код, общий для всех классов-оберток числовых типов. Все классы-обертки реализуют интерфейс Comparable.

Классы-обертки числовых типов имеют метод equals(Object), сравнивающий примитивные значения объектов. Но с этим надо быть предельно внимательным. Так в результате выполнения следующего кода

мы увидим в консоли следующий текст :

Данный результат связан с тем, что во всех классах-обертках метод equals() сначала производит проверку на совпадение типов (классов), и если нет совпадения, то сразу же возвращает false. В JDK 1.3.1 для класса-обертки Integer метод equals() определен следующим образом :

Класс Number

Абстрактный класс Number является суперклассом для классов Byte, Double, Float, Integer, Long и Short. Наследники Number должны обеспечить методы преобразовывания числовых значений в byte, double, float, int, long и short.

Класс Number имеет один конструктор :

Методы класса Number :

МетодОписание
byte byteValue()преобразование значения в тип byte
abstract double doubleValue()преобразование значения в тип double
abstract float floatValue()преобразование значения в тип float
abstract int intValue()преобразование значения в тип int
abstract long longValue()преобразование значения в тип long
short shortValue()преобразование значения в тип short

Класс Integer

Конструкторы класса Integer

  • Integer(int value) - создание объекта Integer на основе аргумента int
  • Integer(String s) - создание объекта Integer на основе строкового аргумента

Поля класса Integer

  • static int MAX_VALUE - максимальная величина типа int
  • static int MIN_VALUE - минимальная величина типа int
  • static Class TYPE - объект класса, представляющий простой тип int

Наиболее значимые методы класса Integer

Методы parseInt(), преобразующие текстовое значение в целочисленное, не следует путать с методами valueOf(), возвращающие класс-обертку. Если переданная на вход строка содержит нецифровые символы, то методы возбуждают исключение NumberFormatException.

Дополнительную информацию о классе Integer можно получить на странице Кэширование класса Integer

Класс Byte

Класс Byte является стандартной оболочкой для байтовых величин.

Конструкторы класса Byte

  • Byte (byte value) - создание объекта Byte с определенным значением value;
  • Byte (String s) - создание объекта Byte на основе текстового значения s.

Поля класса Byte

  • static int MAX_VALUE - максимальная величина типа byte
  • static int MIN_VALUE - минимальная величина типа byte
  • static Class TYPE - объект класса, представляющий простой байтовый тип byte

Методы класса Byte

МетодОписание
byte byteValue()получение значения типа byte
int compareTo(Byte byte)сравнение с объектом Byte
int compareTo(Object o)сравнение с другим объектом
static Byte decode(String nm)преобразование строки в Byte
double doubleValue()преобразование значения в double
boolean equals(Object obj)проверка на равенство с другим объектом
float floatValue()преобразование значения в float
int hashCode()получение hash-кода объекта
int intValue()преобразование значения в int
long longValue()преобразование значения в long
static byte parseByte(String s)преобразование текстового значения в byte
static byte parseByte(String s, int radix)преобразование текстового значения в системе счисления radix в байт
short shortValue()преобразование значения в short
String toString()преобразование значения в String
static String toString(byte b)преобразование байтового значения в String
static Byte valueOf(String s)преобразование текстового значения в Byte
static Byte valueOf(String s, int radix)преобразование текстового значения в системе счисления radix в Byte

Класс Boolean

Класс Boolean является оболочкой простого логического объекта. Объект типа Boolean содержит единственное поле логического типа. Кроме того, этот класс включает методы преобразования boolean в String и обратно, а также константы и методы полезные при работе с логическим типом.

Конструкторы класса Boolean

  • Boolean (boolean value) - создание логического объекта на основе аргумента;
  • Boolean (String s) - создание логического объекта на основе текстового значения s ["true" | "false"].

Поля класса Boolean

  • static Boolean FALSE - логический объект, соответствующий значению «ложь»
  • static Boolean TRUE - логический объект, соответствующий значению «истина»
  • static Class TYPE - объект класса, представляющий простой логический тип

Методы класса Boolean

МетодОписание
boolean booleanValue()получение логического значения
boolean equals(Object obj)функция возвращает логическое значение по результату сравнения переданного объекта с текущим
static boolean getBoolean(String name)преобразование текстового значения в логическое
int hashCode() получение hash-кода объекта
String toString()преобразование в текстовое значение
static Boolean valueOf(String s)преобразование текстового значения в Boolean

Класс Void

Класс-обертка Void, в отличии от остальных, НЕ реализует интерфейс java.io.Serializable и не имеет открытого конструктора. Более того, экземпляр класса Void вообще не может быть получен. Он нужен только для получения ссылки на объект, соответствующий void. Эта ссылка представлена статической константой TYPE. Выражение void.class == Void.TYPE вернет «true».

В большинстве случаев, если нужно проверить возвращаемый тип метода (например, через рефлексию) можно использовать void.class - не перепутаешь с Void.class.

Использовать Void можно, например, в случаях, когда имеется обобщенный класс (generic) и необходимо, чтобы метод ничего не возвращал :

Класс Character

Для хранения символов Java использует специальный тип char. В отличие от языка C/C++, где char представляет собой целочисленный тип с размером 8 бит, в Java для char применяется кодировка Unicode и для хранения Unicode-символов используется 16 бит. Диапазон допустимых значений - от 0 до 65536 (отрицательных значений не существует).

Класс Character является оболочкой вокруг типа char. Чтобы получить значение типа char, содержащее в объекте Character, необходимо вызвать метод charValue().

Конструктор класса Character

Character имеет только один конструктор, которому в качестве параметра передается значение char.

Помимо констант MIN_VALUE и MAX_VALUE, Character содержит две константы MIN_RADIX и MAX_RADIX, которые равны минимальному и максимальному основанию системы счисления, которые используются методами (представленными ниже) для перевода отдельного цифрового символа в его целочисленный эквивалент и наоборот. Основание должно находиться в диапазоне 2–36; цифры свыше 9 представлены буквами от A до Z или их эквивалентами в нижнем регистре.

Тип boolean представляет значения истинности. Существует только два возможных значения для данного типа, представляющих два булевых состояния: включено или выключено, да или нет, истина или ложь. Java резервирует слова true и false для представления этих булевых значений они же являются и двумя допустимыми литералами для задания значений переменных типа boolean.

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

Помимо задания логического значения непосредственно через оператор присваивания переменной boolean, значения логического типа возникают в результате различных сравнений, вроде 2 > 3, и используются главным образом в условных операторах и операторах циклов.

Операторы сравнения

Операторы сравнения состоят из операторов равенства, которые проверяют равенство или неравенство значений (== , !=), и операторов отношения (<,>,<=,>=), используемых с упорядоченными типами (числами и символами) при проверке соотношения больше/меньше. Операторы обоих типов возвращают значение типа boolean, поэтому их обычно используют с условными операторами if и циклами while и for для выбора ветви или проверки условия выполнения цикла.

В Java предусмотрены следующие операторы равенства:

Равно (==)

Оператор == возвращает true (истина), если оба его операнда равны; если нет, то возвращается false (ложь).

В случае примитивных операндов он проверяет идентичность самих значений операндов, однако в случае операндов ссылочных типов проверяется, ссылаются ли операнды на один и тот же объект или массив . Другими словами, оператор не проверяет равенство двух разных объектов или массивов. По средством этого оператора не удастся проверить равенство двух различных строк .
Если оператор == сравнивает два числовых или символьных операнда различных типов, то до начала сравнения более узкий операнд преобразуется к типу более широкого . Например, при сравнении short и float величина типа short преобразуется во float до начала сравнения. Для чисел с плавающей точкой специальное отрицательное нулевое значение считается равным обычному положительному нулевому значению. Кроме того, специальное значение NaN (нечисловое) не равно ни одному другому числу, включая само себя. Чтобы проверить, является ли значение с плавающей точкой значением NaN, используйте метод Float.isNan() или Double.isNan() .

Не равно (!=)

Оператор != прямо противоположен оператору ==. Он возвращает true, если два примитивных операнда имеют разные значения либо если два ссылочных операнда относятся к различным объектам или массивам. В противном случае он возвращает false.

Операторы отношения можно использовать с числами и символами, но нельзя применять со значениями типа boolean, объектами или массивами , так как данные типы не упорядочены. В Java предусмотрены следующие операторы отношения:

Меньше (<)
Возвращает true, если первый операнд меньше второго.

Меньше или равно (<=)
Возвращает true, если первый операнд меньше или равен второму.

Больше (>)
Возвращает true, если первый операнд больше второго.

Больше или равно (>=)
Возвращает true, если первый операнд больше или равен второму.

Булевы операторы

B0002

Как вы уже знаете, операторы сравнения сравнивают операнды и возвращают значение типа boolean. Величины такого типа часто используются в операторах ветвления и цикла. Чтобы выбор ветви и проверка цикла по условиям стали полезнее простого сравнения, можно задействовать булевы (или логические) операторы для объединения нескольких выражений сравнения в одно, более сложное выражение. Для логических операторов нужны операнды со значениями типа boolean. Эти операторы также возвращают значения типа boolean. Существуют такие логические операторы:

Условное И (&&)

Данный оператор выполняет логическую операцию И над операндами. Он возвращает true тогда и только тогда, когда оба операнда истинны . Если один или оба операнда ложны, он возвращает false . Например:

if ( x < 10 && y > 3 ) // Если оба сравнения истинны

Данный оператор (и все другие логические операторы кроме унарного оператора ! ) имеет меньший приоритет, чем операторы сравнения . Таким образом, вышеприведенная запись кода вполне допустима. Однако некоторые программисты прибегают к помощи круглых скобок, чтобы явно обозначить порядок вычислений:

Следует выбрать тот стиль, который вы считаете более удобным для чтения.

Этот оператор называется условным И, потому что он не всегда оценивает второй операнд . Если первый операнд равен false, значение выражения также будет false, каким бы ни было значение второго операнда. Поэтому, для большей эффективности, интерпретатор Java пропускает анализ второго операнда. В выражениях с побочными эффектами этот оператор следует применять осторожно, так как нет гарантии, что будет вычислен второй операнд. С другой стороны, этот оператор позволяет писать такие выражения:

if ( data != null && i < data.length && data [ i ] != -1 ) .

Второе и третье сравнения в данном выражении могут привести к ошибкам, если первое или второе сравнение возвращают false. К счастью, это не проблема, так как поведение оператора && условно.

Условное ИЛИ (||)

Данный оператор выполняет логическую операцию ИЛИ на двух операндах типа boolean. Он возвращает true, если один или оба операнда истинны . Если оба операнда ложны, он возвращает false . Подобно оператору &&, оператор || не всегда вычисляет второй операнд. Если первый операнд равен true, значение выражения тоже будет true , каким бы ни было значение второго операнда. В этом случае оператор просто пропускает второй операнд.

Логическое НЕ (!)

Этот унарный оператор меняет boolean значение операнда. Он возвращает false, если применяется к true значению, и true, если задано false значение . Данный оператор можно использовать в таких выражениях:

Так как оператор ! является унарным, он имеет высокий приоритет, и зачастую его нужно заключать в круглые скобки:

Логическое И (&)

С операндами типа boolean поведение оператора & аналогично поведению оператора &&, но он всегда вычисляет оба операнда, каким бы ни было значение первого операнда. Однако данный оператор практически всегда используют с целыми числами как побитовый оператор.

Логическое ИЛИ (|)

Данный оператор выполняет логическую операцию ИЛИ над двумя операндами типа boolean. Он аналогичен оператору ||, но всегда вычисляет оба операнда, даже если первый операнд является true. Оператор | почти всегда используется как побитовый оператор для целых чисел, а с операндами типа boolean его применяют достаточно редко.

Логическое исключающее ИЛИ (^)

Для операндов типа boolean данный оператор вычисляет исключающее ИЛИ. Он возвращает true, если только один из двух операндов истинен . Другими словами, он возвращает false, если оба операнда ложны либо истинны . В отличие от операторов && и || он всегда вычисляет оба операнда. Оператор ^ намного чаще применяется как побитовый оператор для целых чисел. С операндами типа boolean поведение данного оператора аналогично поведению оператора !=.

Логический оператор присваивания И (&=)

Данные оператор совмещает две операции: логическое И и операцию присваивания. Сперва, над двумя операндами данного оператор совершается операция логического И, а затем происходит присвоение значения этой операции левому операнду.

Например запись x&=y, аналогична записи x=x&y.

Логический оператор присваивания ИЛИ (|=)

Данный оператор аналогичен оператору &=, но только перед присваиванием совершает операцию логического ИЛИ над операндами.

Например запись x|=y, аналогична записи x=x|y.

Логический оператор присваивания исключающее ИЛИ (^=)

Аналогично двум предыдущим, только перед присваиванием совершает над операндами операцию исключающего логического ИЛИ.

Например запись x^=y, аналогична записи x=x^y.

Результаты выполнения булевских логических операций можно представить таблицей:

B0003

Ну а теперь немного попрактикуемся на простой программке:

B0004

Данная программа выводит следующие значения:

В этой программе все просто и не нужно что-то объяснять дополнительно. Если что-то не понятно, то читаем еще раз матчасть. А вот для следующей программы нужно будет немного разъяснений.

B0006

Условное ИЛИ уж разбирать не буду там все тоже самое с точностью до наоборот

Ну и теперь посмотрим на вывод этой программы:

B0007


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Обзор видов данных

Любой язык программирования имеет набор вида данных, виды данных являются базовыми, и они довольно похожи для всех языков. Все виды данных созданы из bit, поэтому я представляю отдельную статью про историю bit и byte. Мой совет вам прочитать ее перед тем, как продолжить с данной статьей.

  • Примитивные виды данных (Primitive Data Types)
  • Ссылочные виды данных (Reference Types)

Существует 8 видов примитивных данных(Primitive Data type) это: boolean, byte, char, short, int, long, float, double.

Вид данныхЗначение по умолчаниюРазмер
booleanfalse1 bit
char'\u0000'2 byte
byte01 byte
short02 byte
int04 byte
long0L8 byte
float0.0f4 byte
double0.0d8 byte
  • Вид logic: boolean.
  • Целочисленные виды (integer): byte, short, char, int, long.
  • Виды реальных чисел (real number) (Так же называются плавающей запятой (floating point)): float, double.

Виды ссылок, это объекты созданные с помощью Constructor классов.

2- byte

1 byte это 8 bit расположенных последовательно друг с другом в памяти компьютера. Каждый bit это бинарное число 0 или 1. Java с названием "byte" для целочисленного вида (integer) с малым диапазоном (Размер 1 byte).


  • Если это 0, Java считает его + (Представляет положительные числа)
  • Если это 1, Java считает его - (Представляет отрицательные числа)

Почему наименьшее число вида byte в Java является -128?

Если по правилам первый bit имеет значение 0 эквивалентное знаку +, значение 1 эквивалентное знаку -, то у нас есть 2 способа для представления числа 0 (Смотрите изображение).


Поэтому двоиная последовательность "1 0 0 0 0 0 0" должна быть рассмотрена, как наименьшее число вида данных byte в Java, она представляет -128.


3- boolean

boolean является самым простым видом данных, имеет размер 1 bit. Имеет 2 значения это true и false.

Значение по умолчанию для вида boolean это false.

4- char

Несмотря на то, что "char" является 4 первыми символами слова "Character" (Символ), но вид char в Java используется для хранения целыъ неотрицательных чисел (Non-negative integers) с размером 2 byte. Он так же используется для представления одного символа Unicode, потому что каждый символ соответствует определенному числу (Данное число понимается как код символа).

Потому что char является целым неотрицательным числом, размер 2 byte, поэтому его диапазон это [0, 2*16-1] ( [0, 65535] ).

Когда char понимается как символ Unicode, наименьший символ является '\u0000' (Код 0), и наибольший символ является '\uffff' (Код 65535).

5- short

short это вид данных для представления целого числа 2 byte (16 bit), включая целое отрицательное число.

  • Наименьшим значением является -32,768 (-2^15) и наибольшим значением является 32,767 (2^15 -1).
  • Значением по умолчанию является 0.

** Примечание: Смотрите больше объяснение для определения положительного или отрицательного числа в части вида данных byte.

6- int

Вид данных int используется для представления целого числа с размером 4 byte (32 bit).

  • Наименьшее значение: -2,147,483,648 (-2^31)
  • Наибольшее значение: 2,147,483,647 (2^31 -1)
  • Значение по умолчанию 0.

В Java, вид данных int считается видом значения пол умолчанию для целых чисел. Поэтому, если вы напишете число 100, Java создаст 4 byte регион в памяти для хранения. А если вы хотите, чтобы Java создал 8 byte регион памяти для хранения числа 100, вам нузно написать 100L. (long является целым числом вида 8 byte, представленный в нижней части).

7- long

Вид данных long используется для представления целых чисел с размером до 8 byte (64 bit).

  • Наименьшее значение это -9,223,372,036,854,775,808.(-2^63)
  • Наибольшее значение это 9,223,372,036,854,775,807. (2^63 -1)
  • Данный вид используется когда нужен диапазон значений шире чем int.
  • Значением по умолчанию является 0L.

Вид данных float используется для представления реальных чисел (real number) с размером 4 byte (32 bit).

  • Наименьшее значение: -3.4028235 x 10^38
  • Наибольшее значение: 3.4028235 x 10^38
  • Значение по умолчанию 0.0f

9- double

Вид данных double используется для представления реальных чисел (real number) с размером 8 byte (64 bit). Это вид по умолчанию для вида реальных чисел.

  • Наименьшее значение: -1.7976931348623157 x 10^308
  • Наибольшее значение: 1.7976931348623157 x 10^308
  • Значение по умолчанию 0.0d

10- Ссылочный вид (Reference Type)

В Java вид данных создается с помощью комбинации примитивных видов, которые называются ссылочным видом (Reference type). Наиболее распространенный ссылчный вид который используется это String, он является комбинацией символов.


Ссылочные виды созданы на основании класса. Класс (class) похож на план (blueprint) для определения ссылочного вида.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Обзор видов данных

Любой язык программирования имеет набор вида данных, виды данных являются базовыми, и они довольно похожи для всех языков. Все виды данных созданы из bit, поэтому я представляю отдельную статью про историю bit и byte. Мой совет вам прочитать ее перед тем, как продолжить с данной статьей.

  • Примитивные виды данных (Primitive Data Types)
  • Ссылочные виды данных (Reference Types)

Существует 8 видов примитивных данных(Primitive Data type) это: boolean, byte, char, short, int, long, float, double.

Вид данныхЗначение по умолчаниюРазмер
booleanfalse1 bit
char'\u0000'2 byte
byte01 byte
short02 byte
int04 byte
long0L8 byte
float0.0f4 byte
double0.0d8 byte
  • Вид logic: boolean.
  • Целочисленные виды (integer): byte, short, char, int, long.
  • Виды реальных чисел (real number) (Так же называются плавающей запятой (floating point)): float, double.

Виды ссылок, это объекты созданные с помощью Constructor классов.

2- byte

1 byte это 8 bit расположенных последовательно друг с другом в памяти компьютера. Каждый bit это бинарное число 0 или 1. Java с названием "byte" для целочисленного вида (integer) с малым диапазоном (Размер 1 byte).


  • Если это 0, Java считает его + (Представляет положительные числа)
  • Если это 1, Java считает его - (Представляет отрицательные числа)

Почему наименьшее число вида byte в Java является -128?

Если по правилам первый bit имеет значение 0 эквивалентное знаку +, значение 1 эквивалентное знаку -, то у нас есть 2 способа для представления числа 0 (Смотрите изображение).


Поэтому двоиная последовательность "1 0 0 0 0 0 0" должна быть рассмотрена, как наименьшее число вида данных byte в Java, она представляет -128.


3- boolean

boolean является самым простым видом данных, имеет размер 1 bit. Имеет 2 значения это true и false.

Значение по умолчанию для вида boolean это false.

4- char

Несмотря на то, что "char" является 4 первыми символами слова "Character" (Символ), но вид char в Java используется для хранения целыъ неотрицательных чисел (Non-negative integers) с размером 2 byte. Он так же используется для представления одного символа Unicode, потому что каждый символ соответствует определенному числу (Данное число понимается как код символа).

Потому что char является целым неотрицательным числом, размер 2 byte, поэтому его диапазон это [0, 2*16-1] ( [0, 65535] ).

Когда char понимается как символ Unicode, наименьший символ является '\u0000' (Код 0), и наибольший символ является '\uffff' (Код 65535).

5- short

short это вид данных для представления целого числа 2 byte (16 bit), включая целое отрицательное число.

  • Наименьшим значением является -32,768 (-2^15) и наибольшим значением является 32,767 (2^15 -1).
  • Значением по умолчанию является 0.

** Примечание: Смотрите больше объяснение для определения положительного или отрицательного числа в части вида данных byte.

6- int

Вид данных int используется для представления целого числа с размером 4 byte (32 bit).

  • Наименьшее значение: -2,147,483,648 (-2^31)
  • Наибольшее значение: 2,147,483,647 (2^31 -1)
  • Значение по умолчанию 0.

В Java, вид данных int считается видом значения пол умолчанию для целых чисел. Поэтому, если вы напишете число 100, Java создаст 4 byte регион в памяти для хранения. А если вы хотите, чтобы Java создал 8 byte регион памяти для хранения числа 100, вам нузно написать 100L. (long является целым числом вида 8 byte, представленный в нижней части).

7- long

Вид данных long используется для представления целых чисел с размером до 8 byte (64 bit).

  • Наименьшее значение это -9,223,372,036,854,775,808.(-2^63)
  • Наибольшее значение это 9,223,372,036,854,775,807. (2^63 -1)
  • Данный вид используется когда нужен диапазон значений шире чем int.
  • Значением по умолчанию является 0L.

Вид данных float используется для представления реальных чисел (real number) с размером 4 byte (32 bit).

  • Наименьшее значение: -3.4028235 x 10^38
  • Наибольшее значение: 3.4028235 x 10^38
  • Значение по умолчанию 0.0f

9- double

Вид данных double используется для представления реальных чисел (real number) с размером 8 byte (64 bit). Это вид по умолчанию для вида реальных чисел.

  • Наименьшее значение: -1.7976931348623157 x 10^308
  • Наибольшее значение: 1.7976931348623157 x 10^308
  • Значение по умолчанию 0.0d

10- Ссылочный вид (Reference Type)

В Java вид данных создается с помощью комбинации примитивных видов, которые называются ссылочным видом (Reference type). Наиболее распространенный ссылчный вид который используется это String, он является комбинацией символов.


Ссылочные виды созданы на основании класса. Класс (class) похож на план (blueprint) для определения ссылочного вида.

Читайте также: