#2. Вводный курс по языку программирования JAVA. Переменные и типы

<<Предыдущий урок   Список уроков   Следующий урок>>

Примитивные типы в Java

Несмотря на то, что язык Java объектно-ориентирован, не все типы – объекты. Существуют так называемые примитивы (primitives). Вот список всех примитивов в Java:

  • byte (число, 1 байт)
  • short (число, 2 байта)
  • int (число, 4 байта)
  • long (число, 8 байтов)
  • float (число с плавающей точкой, 4 байта)
  • double (число с плавающей точкой, 8 байтов)
  • char (символ, 2 байта)
  • boolean (true (истина) или false (ложь), 1 байт)

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

Числа в Java

Чтобы объявить и присвоить число используйте следующий синтаксис:

int myNumber;
myNumber = 5;

= это оператор присваивания.

Вы можете объединить эти операции:

int myNumber = 5;

Чтобы объявить число с плавающей точкой, используйте следующий синтаксис:

double d = 4.5;
d = 3.0;

Если вы хотите использовать float, то:

float f = (float) 4.5;

Или:

float f = 4.5f

(f – более короткий способ объявить float)

Символы и строки в Java

В Java символ – свой собственный тип, и это не просто число. Синтаксис:

char c = 'g';

String – не примитив. Это реальный тип. Вот несколько способов использования строки:

Создание строки с помощью конструктора

String s1 = new String("Who let the dogs out?");

С помощью двойных кавычек (” “).

String s2 = "Who who who who!";

В Java присутсвует конкатенация (объединение) строк при помощи оператора +.

String s3 = s1 + s2;

В Java нет перегрузки операторов! Оператор + определен только для строк, вы никогда не увидите его с другими объектами, только с примитивами.

int num = 5;
String s = "I have " + num + " cookies";

Заметьте, что кавычки с примитивами не используются.

Логический тип boolean в Java

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

boolean b = false;
b = true;

boolean toBe = false;
b = toBe || !toBe;
if (b) {
    System.out.println(toBe);
}

Оператор || это логическое “или”.

А например, такой код не будет работать по причине несовместимости типов:

int children = 0;
b = children;  // Не будет работать, требуется boolean, а найден int
if (children) {  // Не будет работать, требуется boolean, а найден int
    // Не будет работать, требуется boolean, а найден int
}
Попрактикуйтесь в написании кода, прежде чем перейти к следующему уроку.

Дополнительное чтение:

Переменные и идентификаторы в Java

Переменные и константы в Java

Литералы в Java

Более подробно о типах данных в Java

Преобразование типов данных в Java

Переменные и области видимости в Java

<<Предыдущий урок   Список уроков   Следующий урок>>

Коментарі: 27
  1. bazz

    Артём,
    одно значение, это дроби
    double , float = пишутся с плавающей точкой 3.1 2.3 0.9 и т.д (double , float отличаются размером )

    Игорь , если не можеш гуглить, то лучше даже не начинать, вначале надо очень ОЧЕНЬ много гуглить инфу про то как начать и вообще как жить(хД) , другой вариант раскошелится на ментора(учителя) или курсы платные где все по полочкам не надо ничего гуглить это сэкономит кучу времени и заберет кучу твои денег.

  2. Игорь н

    как понять этот урок если нечего не понимаешь,буквы символы (с чего начать?)

    1. Father for Python

      Java усложненная версия языка C++ который сам по себе сложный. Не в коем случае не начинайте обучение c JAVA это самоубийство. Идеальный переход:
      python-pascal-c++-java Если вы гипер умный можете обойтись без паскаль, он вам не пригодится.

  3. Артём

    double d = 4.5;
    d = 3.0; Почему у вас переменной d присвоено два значения?

    1. admin (автор)

      Это просто пример записи

    2. отвечаю админу – присоединяюсь к вопросу – вам оно может и понятно, но мне, как человеку, никогда программированием не занимавшемуся, это вообще не понятно, и не только это. Хотелось бы курсов типа – вот ложечка кашки, это ложечка? Ложечка! А кашка вкусная? Вкусная кашка! Как с ребенком, С объяснением основ. А вы преподаете на таком уровне, на котором новичкам не понятно, а знающим, думаю, не интересно

    3. Father for Python

      в java как только ты создаешь переменную с каким-либо типом, ты должен сразу задать ему число или строку. Она может быть любой, и по моему проще присвоить 0. А дальше работаешь с ней как хочешь.И я бы не советовал начинать с java это боль)

    4. Father for Python

      И не надо гнать на курс. Самое идеально , что я видел. Просто когда ты выучил хотя 2-3 основных языка программирования, тебе не нужно учить с самого начала уже на более сложном языке основы основ. Если ты хочешь научить ребенка готовить, ты не будешь ему пояснять что ложечка есть ложечка, а кашечка есть кашечка. Нични с пакаль ; с++ – а джава уже последнее

  4. Sergiu

    спасибо за урок, но про boolean понять не могу.
    почему сначала (boolean b = false;) задался примитив b типа boolean, ему присвоилось значение false,
    а потом сразу к тому же примитиву присваевается другое значение (true)?
    а потом создаётся ещё один примитив к которому опять сначала присваевается falce а потом значение b.

  5. Vladimir

    Скажите пожалуйста, что это за ошибка и как её исправить? Error:(20, 9) Gradle: error: reached end of file while parsing

    1. Павел

      Скорее всего, у вас есть продолжение программы после конца файла(да, я просто перевел текст):

      -Вы проводите какие-либо действия за последней фигурной скобкой(их всегда по две в файле, должно быть четное число)

      -У Вас просто не хватает этих скобок

      -ИЛИ Ваша программа читает текст из файла, в ней количество нужных к прочтению символов меньше количество этих символов в файле(слишком много повторов или неограниченный цикл) избавляйтесь от цикла или ограничьте его.

      Надеюсь, я помог Вам.

  6. Спасибо за долю юмора. Надеюсь приколы с “быть или не быть” заметили все :)

    1. Павел

      +++

  7. String s1 = new String(“Who let the dogs out?”);

    зачем здесь перед String пишется new ? Что new означает?

  8. Анатолий

    Очень понятно и подробно объяснено.Это мой третия язык програмирования.Я уже знаю C++ и Python.Скоро выучу и яву.Всегда хотел попробовать себя в качестве android-разработчика

    1. Егор

      Анатолий вам как то пригодилось изучение языков???

  9. Почему у меня выдает S3 вместо Who let the dogs out?Who who who who

    1. Никита

      возможно, Вы поставили кавычки. Без кавычек консоль выдаёт значение переменной, а с ними – то, что между кавычками написано.

  10. мне ни чего не ясно) я абсолютный ноль в этом и урок мне ни чего не дал)

  11. Складывая целочисленную переменную и строку, Вы всегда получаете строку.
    Например:
    int month = 15;
    String phrase = “Today is March, ” + 15;

    Тогда в переменной phrase получите: “Today is March, 15”. Так как тип переменной phrase – строковый, то строковым он и останется, “поглотив” в себя int.

    P.S. Надеюсь, всё понятно разъяснил :)

  12. String s = “I have ” + num + ” cookies”; а что делает эта строка, как складываються строки вродебы ясно, а вот как складывать целочислнные переменные и строки? Что там получиться в этой s?

  13. спасибо за урок, но про boolean понять не могу.
    почему сначала (boolean b = false;) задался примитив b типа boolean, ему присвоилось значение false,
    а потом сразу к тому же примитиву присваевается другое значение (true)?
    а потом создаётся ещё один примитив к которому опять сначала присваевается falce а потом значение b.
    также непонятна строчка с if. что она вообще обозначает?

    помогите пожалуйста! распишите каждое слово из предпоследнего прямоугаольника.что и для чего оно делает. заранее спасибо.

    1. Анатолий

      if это условный опертаор.Когда узнаешь что такое ветвление программы ты поймешь.

Додати коментар