Условные операторы if и switch

Super Low Level

Этот абзац для тех, кто прочел вышесказанное и подумал, что, наверное, это сложно — стать разработчиком, я ничего не понимаю, открыл книгу — вижу фигу и т.д.

Стыдно признать, но так было и со мной — читая «Философию Java» 7 лет назад как первую книгу по Java, я думал, что нахожусь в дремучем лесу, не зная его. Я был тревожен и переживал, что, программирование — это не мое. К счастью, мне посоветовали youtube канал одного парня, который рассказывал о программировании на java с самого нуля. Это канал — theNewBoston, и вот плейлист его курса. Можно еще попробовать курсы от Lynda.com.

Ну, и самое элементарное, что мне приходит сейчас в голову (кроме детских книжек по программированию) — это серия подробно иллюстрированных книг по разработке Head First от O’Reilly и сама книга «Изучаем Java» (Head First Java).

Если это вам тоже покажется непонятным, тут два варианта: либо вы плохо стараетесь/не хотите стараться понять/изучить, либо я разговариваю с котом (:

💰 На правах рекламы. «Профессия Java-разработчик» от Skillbox 💰

Продолжительность курса: 9 месяцев = 240 уроков = 3-5 часов в неделю.

Программа обучения:

  1. Вводный модуль.
  2. Синтаксис языка.
  3. Система контроля версий Git.
  4. Объекты и классы.
  5. Числа, строки, даты.
  6. Массивы и коллекции.
  7. Наследование и полиморфизм.
  8. Особенности ООП в Java.
  9. Исключения, отладка, тестирование и логирование.
  10. Работа с файлами и сетью.
  11. Работа с MySQL в Java.
  12. Многопоточность.
  13. Разработка веб-приложений.
  14. Нереляционные базы данных и очереди.
  15. Производительность и оптимизация.
  16. Распределённые хранилища и вычисления.
  17. Универсальные знания программиста.
  18. Английский для IT-специалистов.
  19. Индивидуальный проект: блоговый движок.
  20. Командный проект: разработка соцсети.
  • Готовое портфолио по окончании обучения
  • Гарантированная помощь в трудоустройстве
  • Упор на практику
  • Доступ к курсу навсегда
  • Бесплатная консультация для желающих начать обучение
  • Преподаватели-эксперты — Даниил Пилипенко, программист с более чем 15-летним опытом работы, основатель и директор центра подбора IT-специалистов SymbioWay, и Михаил Овчинников, главный методист технического направления Skillbox, экс-сотрудник Badoo Development LLC (должность — ведущий инженер-программист)

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

Java поддерживает 11 составных операторов присваивания. Мы можем сгруппировать их в арифметические и побитовые операторы.

Давайте рассмотрим арифметические операторы и операции, которые они выполняют:

  • Приращение: + =
  • Уменьшение: — =
  • Умножение: * =
  • Деление: / =
  • Модуль: % =

Затем у нас также есть побитовые операторы:

  • И, двоичное: & =
  • Исключающее ИЛИ, двоичное: ^ =
  • Включающее ИЛИ, двоичное: | =
  • Левый сдвиг, двоичный: << =
  • Сдвиг вправо, двоичный: >> =
  • Сдвиг нулевой заливки вправо: >>> =

Давайте посмотрим на несколько примеров этих операций:

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

Почему важна независимость платформы?

Со
многими языками программирования вам нужно использовать компилятор, чтобы
уменьшить код на машинный язык, который может понять устройство. Хотя
это хорошо, разные устройства используют разные машинные языки. Это
означает, что вам нужно скомпилировать ваши приложения для каждого другого
устройства или машинного языка, другими словами, ваш код не очень портативен. Это не
относится к Java. Компиляторы Java преобразуют ваш код из человеческих
читаемых исходных файлов Java в так называемый «байт-код» в мире Java. Они интерпретируются виртуальной машиной Java, которая
работает так же, как физический процессор взаимодействует с машинным кодом,
чтобы выполнить скомпилированный код. Хотя
может показаться, что это неэффективно, было сделано много усилий, чтобы этот
процесс был очень быстрым и эффективный. Эти
усилия окупились в том, что производительность Java, как правило, уступает
только C/C++ в общих сравнениях производительности языка.

Приложения
Android запускаются на специальной виртуальной машине под названием Dalvik VM. Хотя
сведения об этой виртуальной машине не важны для среднего разработчика, может
быть полезно подумать о VM Dalvik как о пузыре, в котором работает ваше
приложение для Android, позволяя вам не беспокоиться о том, является ли
устройство Motorola Droid, HTC Evo, или новейший тостер под управлением
Android. Вам
все равно, пока устройство Dalvik VM дружелюбное, и это задача производителя
устройства, а не ваша.

Intermediate

Давайте наберемся храбрости и попробуем спуститься на уровень ниже. Если бы на собеседованиях спрашивали только основы по Java, мир состоял бы исключительно из добрых людей, верно? Но увы, это не так. Боюсь, ответив тишиной на вопрос «Что вы знаете о CountdownLatch?», вы не произведете должного впечатления. Кто-то плюнет в монитор и скажет, что никогда и не использовал этот-как-его-там-Latch и знать не знает, что это такое, а работает уже сеньором, и, может, будет прав. Но давайте попробуем быть честными в первую очередь по отношению к себе и попытаемся пролить свет на следующий интересный момент в карьере каждого разработчика.

Есть ли смысл учить что то новое, если это не используется в проекте?

Поверьте, таких ребят больше, чем вы можете себе представить. Пройдя интервью и попав на работу джуном/миддлом, наш экспонат просто-напросто расслабляет булки сразу после того, как внедряется в работу. Может быть, всё было бы так, если проект — это 24/7 система по охране китайской стены. К сожалению, жизненный цикл любого «современного, не такого как у всех, супер интересного» проекта у разработчика не длинной в вашу жизнь. Сразу после того, как проект закроется и ваше самолюбие вылетит из уютного бизнес-центра с печеньками и приветливой девушкой на рецепции, наступит «легкое похмелье», и далеко не от того, что вы перебрали прошлым вечером, а от того, что поймете, что вам потребуется куда больше времени, чтобы подговиться к следующему интервью, где в требованиях будут присутствовать уже новые фреймворки и тайные стороны Java, о которых вы даже и не догадывались.

Как кто-то сказал на DOU, что если бы мы питались от фотосинтеза… Сколько же было тогда настоящих developer’ов?

Намного легче людям, которые глубоко копают, и тем, кто постоянно учится по вечерам и в перерывах на работе, и еще куда легче тем, кто ловит от этого чистый кайф (true programmer). Да, жена/девушка будет страдать и ставить ультиматумы: я или ноутбук, тут вы уже сами должны решить и подходить к этому ответственному вопросу сбалансировано (хорошо, когда девушки это понимают — этот бокал вина за вас!). Именно такие черты как любознательность и трудолюбие помогут вам не отставать от стремительно летящего по рельсам паровоза технологий, о котором я говорил в начале статьи.

Выделение памяти

Коротко о том, как происходит выделение памяти со стороны кода в фоновом режиме:

  • Каждый раз при создании объекта в Java он сохраняется в heap памяти.
  • Примитивы и локальные переменные хранятся в stack памяти, переменные-члены — в heap.
  • При многопоточности каждый поток имеет собственный stack, но находится в общей куче (heap). О многопоточности поговорим во второй части.
  • При вызове какого-либо метода все методы и переменные помещаются в stack. По завершении вызова указатель стека (stack) уменьшается.
  • 32-разрядная операционка тратит не более 4GB RAM на Java-приложения. В 64-разрядной затраты памяти на те же элементы увеличиваются вдвое.
  • Примитивный тип int тратит в 4 раза меньше памяти, чем Integer.

Графическое представление распределения памяти

Таблица ниже перечисляет различные типы данных и их диапазоны хранимых значений:

Типы данных и диапазоны значений

Структура программы Java

Теперь, когда мы узнали о типах данных, переменных и нескольких основных операторах, давайте посмотрим, как объединить эти элементы в простую исполняемую программу.

Основной единицей Java-программы является Класс . /| Класс может иметь одно или несколько полей (иногда называемых свойствами) , методы и даже другие члены класса, называемые внутренними классами.

Чтобы класс /был исполняемым, он должен иметь метод main . Метод main обозначает точку входа в программу.

Давайте напишем простой исполняемый класс для выполнения одного из фрагментов кода, которые мы рассматривали ранее:

public class SimpleAddition {

    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        double c = a + b;
        System.out.println( a + " + " + b + " = " + c);
    }
}

Имя класса – Простое дополнение , и внутри него у нас есть метод main , в котором хранится наша логика. Сегмент кода между открывающими и закрывающими фигурными скобками называется блоком кода.

Исходный код программы на Java хранится в файле с расширением .java .

Классы-обертки в Java

Класс-обертка — это класс, объект которого содержит примитивные типы данных. Когда мы создаем объект для класса-обертки, он содержит поле, в котором мы можем хранить примитивные типы данных.

Как работают классы-обертки:

  • Они преобразуют примитивные типы данных в объекты. Это необходимо, когда мы хотим изменить аргументы, передаваемые через метод (поскольку примитивные типы передаются только через value).
  • В пакете java.util классы могут обрабатывать только объекты, и в этом случае помогут обертки.
  • Чтобы работать в коллекциях ArrayList и Vector, потребуются объекты, а не примитивные типы.
  • Классы-обертки необходимы для поддержки синхронизации в режиме многопоточности.

В коде процесс создания классов-оберток выглядят так:

// Java program to demonstrate Autoboxing

import java.util.ArrayList;

class Autoboxing
{
    public static void main(String[] args)
    {
        char ch = 'a';

        // Autoboxing- primitive to Character object conversion

        Character a = ch;

        ArrayList<Integer> arrayList = new ArrayList<Integer>();
  
        // Autoboxing because ArrayList stores only objects

        arrayList.add(25);

        // printing the values from object

        System.out.println(arrayList.get(0));

    }
}

А если нужно совершить обратный процесс и преобразовать класс-обертку в примитивный тип, то придется совершить unboxing или распаковку данных:

Логические операторы

Логика – то, без чего программирование и коддинг немыслимы. В процессе написания сложных приложений, предстоит искать не только логические связи, но и грамотно прописывать разнообразные условия выполнения кодов. В противном случае не обойтись без критических ошибок.

Логические операции будут выполняться в Джаве при помощи так называемых логических операторов. В ходе реализации задается то или иное условие. Оно проверяется и принимает значение true или false.

Работа поддерживается только с операндами, принадлежащими к типу boolean. Соответствующие «команды»:

  • работают с двумя операндами;
  • отвечают за объединение 2-х логических значений;
  • образовывают общий результат логического типа.

Данная категория включает в себя разнообразные вариации. А именно:

  • отрицание;
  • «и»;
  • «или»;
  • исключающее или.

Далее каждый вариант будет рассмотрен более подробно. Эта информация поможет изучить логические операторы Java в полной мере.

Отрицание

Унарный вариант. Использует только один операнд или булевское выражение. Иногда описывается как «логическое НЕ». Применение отвечает за корректировку состояния задействованного операнда.

Если заданное условие обладает значением true, в ходе применения рассматриваемого объекта будет произведена корректировка до результата «ложь». Иными словами, происходит замена изначального значения.

Для записи используется символ «!» без каких-либо кавычек. Вот наглядный пример:

Логическое «И»

Следующий operator – это «и». Применяется к двум выражениям. Результат – это true, только когда оба операнда обладают значением «true». В противном случае результирующим показателем служит «ложь».

Для записи используется символ «&». Чтобы лучше понимать принцип работы оного, можно представить, что:

  • True = 1;
  • False – 0.

В данном случае & будет работать как обычное умножение. Сюда же можно отнести условное «и» — &&. Этот вариант выдает такой же результат, как и &. Разница заключается в принципах работы соответствующих «операций».

Условное «и» применяется, когда не требуется узнавать значение второго операнда. Данный прием позволяет ускорить работу утилиты.

Логическое «или»

Логическое «или» носит название дизъюнкции:

  • применяется относительно двух выражений;
  • результатом служит «ложь», только если оба варианта ложны;
  • true присваивается во всех остальных ситуациях.

Для записи используется символ «|». Соответственно, если хотя бы один оператор выступает в качестве true, конечный результат окажется тоже true.

Логическое «или» работает как сложение, но здесь 1+1 – это не 2, а 1. То есть, true.

Условное «или» имеет запись ||. Действие осуществляется по тем же принципам, что и в случае с условным «и». Когда первый операнд имеет true, выводится аналогичный результат. Второй «элемент» не будет подлежать проверке.

Исключающее «или»

Это – строгая дизъюнкция. В математике данный вариант имеет немалое количество названий. Результат применения к двум операторам равно true, if оные являются отличными друг от друга и обладают false. Else – выдается результат false.

Данный вариант удобно сравнивать с вычитанием нулей и единиц, где 0 – это «ложь», а единица – true. Записывается при помощи «^».

Операторы в Java

Теперь, когда мы видели оператор присваивания (=) выше, давайте рассмотрим некоторые другие типы операторов на языке Java :

6.1. Арифметические операторы

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

  • + (плюс или дополнение; также используется для конкатенации строк)
  • – (минус или вычитание)
  • * (умножение)
  • /(подразделение)
  • % (модуль или остаток)

Мы использовали оператор plus (+) в нашем предыдущем примере кода для добавления двух переменных. Другие арифметические операторы используются аналогично.

Другое использование плюса (+) заключается в объединении (соединении) строк для формирования целой новой строки:

String output =  a + " + " + b + " = " + c;

6.2. Логические операторы

В дополнение к арифметическим операторам Java поддерживает следующие логические операторы для вычисления логических выражений:

  • && (И)
  • (ИЛИ)

Давайте рассмотрим следующие фрагменты кода, которые демонстрируют логические операторы AND и OR. В первом примере показана инструкция print, которая выполняется, когда переменная number делится как на 2, так И на 3:

int number = 6;
        
if (number % 2 == 0 && number % 3 == 0) {
    System.out.println(number + " is divisible by 2 AND 3");
}

В то время как второй выполняется, когда число делится на 2 ИЛИ на 5:

if (number % 2 == 0 || number % 5 == 0) {
    System.out.println(number + " is divisible by 2 OR 5");
}

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

Когда нам нужно сравнить значение одной переменной со значением другой, мы можем использовать операторы сравнения Java :

  • < (менее)
  • <= (меньше или равно)
  • > (больше, чем)
  • >= (больше или равно)
  • == (равно)
  • != (НЕ равно)

Например, мы можем использовать оператор сравнения для определения правомочности избирателя:

public boolean canVote(int age) {
    if(age < 18) {
        return false;
    }
    return true;
}

«Java для начинающих» от Наиля Алишева

Пройти курс

Длительность: 49 уроков.

Форма обучения: видеокурс.

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

Чему научитесь

  1. Синтаксис Java.
  2. Компиляторы.
  3. JDK.
  4. Среды разработки.
  5. Создание первых программ.
  1. Сбалансированная учебная программа.
  2. Курс для новичков распространяется бесплатно, доступ к учебным материалам неограничен.
  3. Доступный стиль изложения материала с наглядными примерами.
  4. Автор курса предоставляет ссылки на интересные учебные программы и полезные источники.
  1. Отсутствие прямой коммуникации с преподавателем, в некоторых непонятных моментах придётся разбираться самостоятельно с привлечением дополнительных источников.

Неявное приведение

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

Формально составное выражение присваивания в форме:

E1 op = E2

эквивалентно:

E1 — (T) (E1 op E2)

где T — тип E1 .

Let’s consider the following example:

Let’s review why the last line won’t compile.

Java automatically promotes smaller data types to larger data ones, when they are together in an operation, but will throw an error when trying to convert from larger to smaller types.

So, first, i will be promoted to long and then the multiplication will give the result 10L. The long result would be assigned to i, which is an int, and this will throw an error.

This could be fixed with an explicit cast:

Java compound assignment operators are perfect in this case because they do an implicit casting:

Этот оператор отлично работает, преобразовывая результат умножения в int и присваивая значение левой переменной i .

I/O

В принципе, Брюс Эккель в «Философия Java» глубоко освещает I/O API. Добавлю, что каждому начинающему разработчику нужно обязательно попрактиковаться в следующем:— создайте консольный квест с помощью использования Scanner — попробуйте в своих мини-проектах манипулировать файлами и папками — изучите паттерн Декоратор на примере Java I/O — напишите простенькую базу данных (какие-то незамысловатые CRUD-операции через консоль)

Если по долгу службы вам необходимо детально использовать в проектах I/O, обратите внимание на книгу Java I/O by Elliotte Rusty Harold:

Это достаточно полноценный, информативный обзор I/O API.

«Уроки Java Профи» от itProger

Длительность: 14 уроков.

Форма обучения: видеоуроки + текстовая расшифровка + ссылки на полезные источники.

Обратная связь: коммуникация через форму обратной связи.

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

Чему научитесь

  1. Java на профессиональном уровне.
  2. Коллекции и потоки.
  3. Библиотека JavaFx.
  4. Подключение БД через JDBC.
  1. Большой курс со сбалансированной программой для профи в области Java.
  2. Видеоуроки, дополненные текстовой расшифровкой.
  3. Обучение в любое удобное время.
  4. Обучающие материалы доступны после окончания курса.

Где нужны значения типа Boolean

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

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

Оператор ветвления позволяет выбрать и исполнить определённый блок кода в зависимости от срабатывания некоторого условия.

Есть два оператора ветвления (условные конструкции): if-else и switch.

Оператор if

Его синтаксис выглядит так:

if (условие) {

//код

} else {

//код

}

В круглых скобках после if указывают условное выражение (высказывание). Если оно истинно (то есть результат его вычисления равен true), то выполняется код в фигурных скобках после условия, иначе выполняется код по ветке else (если она есть).

Примеры:

Проверяем условие в круглых скобках:

3 > 2?

Если да, то в консоль выводим: «Высказывание в скобках правдивое», иначе ничего не выводим.

Так как 3 и правда больше 2, то в консоли появилось наше сообщение.

Печатаем «Высказывание в скобках правдивое», если результат вычислений в круглых скобках = true. В ином случае выводим: «Высказывание в скобках ложное».

Так как выражение (3 < 2) возвращает false, то и в консоли видим: «Высказывание в скобках ложное».

Вложенные конструкции

Допустим, мы хотим проверить некое условие, и если оно не выполнилось — проверить другое условие и так далее. Сделать это можно двумя способами.

1. Вложенный if

Синтаксис тут такой:

if (условие1) {

//действия, если условие1 выполнено;

} else {

if (условие2) {

//действия, если условие2 выполнено;

}

<…>

else {

//действия, если все предыдущие условия не выполнились;

}

Пример:

2. Конструкция else if

Каждое логическое условие записывают через комбинацию else if, после которых в круглых скобках идёт альтернативное условие. Последний вариант (если ни одно из условий не сработало) записывается через else без условия.

Синтаксически это выглядит так:

if (условие1) {

//действия, если условие1 выполнено;

}

else if (условие2) {

//действия, если условие2 выполнено;

}

else if (условие3) {

//действия, если условие3 выполнено;

}

<…>

else {

//действия, если условие последнего if тоже не выполнилось;

}

Пример:

Каждое следующее условие проверяется только в том случае, если предыдущее не выполнилось. Как только найдётся одно правдивое условие (или мы достигнем последнего else), выполнится код в фигурных скобках после этого условия, а оставшаяся цепочка условий будет пропущена.

Иногда условий else if нужно довольно много:

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

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

Вот это язык Java для поддержки оператора присваивания:

операторы описание пример
= Простой оператор присваивания, значение правого операнда левого операнда C = A + B + B даст значение, присвоенное C
+ = Сложение и оператор присваивания, то левый операнд и правый операнд, добавив задание левого операнда С + = А эквивалентно C = C + A
— = Сохранить левый операнд и оператор присваивания, то левый операнд и правый операнд назначается для вычитания С — = А эквивалентно С = С —
* = Умножение и оператор присваивания, то левый операнд и правый операнд умножается на присвоение левого операнда С * = А эквивалентно C = C * A
/ = Кроме того и оператор присваивания, то левый операнд и правый операнд деление назначен на левый операнд С / = А эквивалентно C = C / A
(%) = Модульное и оператор присваивания, то левый операнд и правый операнд левого операнда после присваивания по модулю С% = А эквивалентно С = С% А
<< = Оператор присваивания сдвига влево C << = 2 эквивалентно C = C << 2
>> = Оператор присваивания Сдвиг вправо C >> = 2 эквивалентно C = C >> 2
& = Побитовое И оператор присваивания C & = 2 эквивалентно С = С & 2
^ = Оператор присваивания Побитовая XOR C ^ = 2 эквивалентно С = С ^ 2
| = Побитовое ИЛИ оператор присваивания C | = 2 эквивалентно С = С | 2

примеров

Простой пример показывает, что программы сталкиваются оператор присваивания. Скопируйте и вставьте следующую программу Java и сохранить его как Test.java файл, а затем скомпилировать и запустить эту программу:

public class Test {
  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 0;
     c = a + b;
     System.out.println("c = a + b = " + c );
     c += a ;
     System.out.println("c += a  = " + c );
     c -= a ;
     System.out.println("c -= a = " + c );
     c *= a ;
     System.out.println("c *= a = " + c );
     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );
     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c );
     c <<= 2 ;
     System.out.println("c <<= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= a = " + c );
     c &= a ;
     System.out.println("c &= 2  = " + c );
     c ^= a ;
     System.out.println("c ^= a   = " + c );
     c |= a ;
     System.out.println("c |= a   = " + c );
  }
} 

Приведенные выше примеры скомпилированные получены следующие результаты:

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

Битовые операторы

Java определяет битовый оператор, применяется к целому числу типа (INT), длинное целое (длинное), короткое целое (короткий), символ (символов), а байт (байт) и другие типы.

Битовые операторы во всех позициях, и побитовые операции. Пусть а = 60, B = 13, их двоичный формат будет выглядеть следующим образом:

A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

В следующей таблице перечислены основные операторы Битовые операции, предполагая целую переменную переменная B составляет 60, а значение 13:

операторы описание пример
& Побитовая и оператор, тогда и только тогда, когда бит в обоих операндов не равны нулю результат, когда бит равен 1. (А & В), с получением 12, а именно: 0000 1100
| Побитовая или оператор, немного до тех пор, как два операнда имеют ненулевой результат, когда этот бит установлен в 1. (A | B), чтобы дать 61, а именно 00,111,101
^ Побитовое XOR оператор, немного из двух операндов не тот же самый результат, если бит установлен в 1. (А ^ В), чтобы дать 49, а именно: 00,110,001
~ Оператор побитового дополнения листать каждый бит операндов. (~ A) -61 Получено, а именно 11000011
<< Побитовый сдвиг влево. Левый операнд правым операндом бит левого сдвига указано количество цифр. A << 2 240, т.е. 11.11 млн
>> Побитовый сдвиг вправо оператора. Левый операнд определяет количество битов, за битом справа от правого операнда. A >> 2 получить 15 т 1111
>>> Побитовая правый нули оператора. Значение левого операнда Нажать правый операнд на заданное количество битов вправо, перемещение получившегося вакансии заполняются нулями. A >>> 2 получить 15 т 0000 1111

примеров

Следующий простой пример программы демонстрирует битовые операторы. Скопируйте и вставьте следующую программу Java и сохранить его как Test.java файл, а затем скомпилировать и запустить эту программу:

public class Test {
  public static void main(String args[]) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );

     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );

     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );

     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );

     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );

     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
} 

Приведенные выше примеры скомпилированные получены следующие результаты:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15

Понимание наследования

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

Эта
концепция лучше всего иллюстрируется примером.  Давайте
притворимся, что мы разрабатываем Java-приложение для имитации аквариума. В этом
аквариуме есть рыба. Поэтому
мы могли бы определить класс для представления рыбы. Этот класс, называемый Fish, может включать в себя некоторые
поля данных (также называемые атрибутами или переменными-членами класса) для
описания объекта рыбы: вида, цвета и размера; а также некоторые его поведение в
виде методов (также называемых подпрограммами или функциями в процедурных
языках), таких как eat (), sleep () и makeBabyFish ().

Для создания и инициализации объекта используется специальный тип метода, называемый конструктором; конструкторы называются такими же, как и их класс, имогут включать в себя параметры. Следующий класс Fish имеет два конструктора: один для создания общего объекта Fish, а другой для конструирования определенного объекта Fish с некоторыми исходными данными. Вы
также увидите, что у класса Fish есть два метода eat (): один для приема
чего-то случайного, а другой — для еды другой рыбы, который будет представлен
другим экземпляром класса Fish:

Классы могут быть организованы в иерархии, где производный класс (или подкласс) включает все функции его родительского класса (orsuperclass), но уточняет и добавляет к ним, чтобы определить более конкретный объект, используя ключевое слово extends. Это называется наследованием.

Например,
класс Fish может иметь два подкласса: FreshwaterFish и SaltwaterFish. Эти
подклассы будут иметь все функции класса Fish, но могут дополнительно настроить
объекты с помощью новых атрибутов и поведения или модифицированного поведения
из родительского класса Fish. Например,
класс FreshwaterFish может включать информацию о типе пресноводной среды, в
которой они жили (например, река, озеро, пруд или лужа).  Аналогично,
класс SaltwaterFish может настроить метод makeBabyFish() таким образом, чтобы
рыба ест своего партнера после размножения (как определено в суперклассе),
используя механизм переопределения, например:

Заключение

Вау!
Вы только что начали курс по сбору данных в Java для разработки Android.  Мы
рассмотрели здесь довольно много материала, поэтому давайте немного
поразмыслим, прежде чем переходить к следующему уроку этой серии уроков.  В
уроке 2 мы переключим внимание на подробные детали синтаксиса Java. Вы
только поцарапали поверхность Java-разработки для разработки Android.  Ознакомьтесь
со всеми другими замечательными учебниками на Mobiletuts +, чтобы погрузиться
глубже в разработку Java и Android

Удачи!

Вы
только поцарапали поверхность Java-разработки для разработки Android.  Ознакомьтесь
со всеми другими замечательными учебниками на Mobiletuts +, чтобы погрузиться
глубже в разработку Java и Android. Удачи!

Об авторах

Разработчики мобильных устройств Лорен Дарси и Шейн Кондер совместно со своими коллегами разработали несколько книг по разработке Android: углубленную книгу по программированию под названием Android Wireless Application Development и разработку приложений для Android от Sams TeachYourself за 24 часа.  Когда
они не пишут книги, они тратят свое время на разработку мобильного программного
обеспечения в своей компании и предоставление консультационных услуг. Их можно найти по электронной почте: [email protected], через свойблог  androidbook.blogspot.com и на Twitter @androidwireless.

Нужна
дополнительная помощь? Написание приложений для Android? Ознакомьтесь с нашими новейшими книгами и ресурсами!

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: