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


Хотя Java является объектно-ориентированной, не все типы являются объектами. Он построен на основе базовых типов переменных, называемых примитивами.

Вот список всех примитивов в Java:

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

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 is a shorter way of casting float)

Персонажи и строки

В Java символ - это собственный тип, а не просто число, поэтому не принято помещать в него значение ascii, существует специальный синтаксис для символов:

char c = 'g';

Stringне примитив. Это настоящий тип, но в Java есть особая обработка String.

Вот несколько способов использования строки:

// Create a string with a constructor
String s1 = new String("Who let the dogs out?");        // String object stored in heap memory
// Just using "" creates a string, so no need to write it the previous way.
String s2 = "Who who who who!";                         // String literal stored in String pool
// Java defined the operator + on strings to concatenate:
String s3 = s1 + s2;

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

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

int num = 5;
String s = "I have " + num + " cookies"; //Be sure not to use "" with primitives.

логический

Каждый оператор сравнения в java возвращает логический тип. В отличие от других языков, он принимает только два специальных значения: trueили false.

boolean b = false;
b = true;

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

int children = 0;
b = children; // Will not work
if (children) { // Will not work
    // Will not work
}

int a;
boolean b = true; 
boolean c = false; 
a = b + c;            //The following line will give an error
System.out.println(a);

Упражнение

Создайте все примитивы (кроме long и double) с разными значениями. Объедините их в строку и распечатайте на экране, чтобы он напечатал: H3110 w0r1d 2.0 true