You are on page 1of 35

ЛЕКЦІЯ 2.

ПОВТОРЕННЯ
Глибовець А.М.
КОДУВАННЯ
 Технологія Java, як платформа, спочатку
спроектована для Глобальної мережі Internet,
повинна бути багатомовною, а значить, звичайний
набір символів ASCII, що включає в себе лише
латинський алфавіт, цифри і найпростіші спеціальні
знаки (дужки, знаки пунктуації, арифметичні
операції і т.д.), недостатній.
 Тому для запису тексту програми застосовується
більш універсальне кодування Unicode.
КОДУВАННЯ
 Як відомо, Unicode представляє символи кодом з 2
байт, описуючи, таким чином, 65535 символів.
 Перші 128 символів збігаються з набором ASCII
АНАЛІЗ ПРОГРАМИ
 Компілятор, аналізуючи програму, відразу поділяє
його на:
 пробіли (проміжки ...) (white spaces);
 комментарі (comments);
 основні лексеми (tokens)
ПРОБІЛИ
 Пробілами в даному випадку називають всі символи,
що розбивають текст програми на лексеми.
 Це як сам символ пробілу (space, \u0020, десятковий
код 32), так і знаки табуляції та переведення рядка.
 Вони використовуються для розділення лексем, а
також для оформлення коду, щоб його було легше
читати.
КОМЕНТАРІ
 Нагадайте мені які види коментарів ви знаєте?
ЛЕКСЕМИ
 З точки зору компілятора, а точніше його частини, що
відповідає за лексичний розбір, основна роль
пропусків та коментарів - служити роздільниками
між лексемами, причому самі роздільники далі
відкидаються і на скомпільований код не впливають.
ВИДИ ЛЕКСЕМ
 види лексем в Java:
 ідентифікатори (identifiers);
 ключові слова (key words);
 літерали (literals);
 роздільники (сепаратори);
 оператори (operators)
ІДЕНТИФІКАТОРИ
 Ідентифікатори - це імена, які даються різним
елементам мови для спрощення доступу до них.
 Імена мають пакети, класи, інтерфейси, поля, методи,
аргументи і локальні змінні.
 Ідентифікатори можна записувати символами
Unicode, тобто будь-якою зручною мовою.
 Довжина імені не обмежена.

 Ідентифікатор складається з букв і цифр.

 Ім'я не може починатися з цифри.


КЛЮЧОВІ СЛОВА
 Ключові слова - це зарезервовані слова, що
складаються з ASCII-символів і виконують різні
завдання мови.
 Ось їх повний список (48 слів):

 abstract double int strictfp boolean else interface


super break extends long switch byte final native
synchronized case finally new this catch float package
throw char for private throws class goto protected
transient const if public try continue implements
return void default import short volatile do
instanceof static while
КЛЮЧОВІ СЛОВА
 Ключові слова goto і const зарезервовані, але не
використовуються.
 Це зроблено для того, щоб компілятор міг правильно
відреагувати на їх використання в інших мовах.
 Навпаки, обидва булевих літерала true, false і null-
літерал null часто вважають ключовими словами
(можливо, тому, що багато засобів розробки
підсвічують їх таким же чином), проте це саме
літерали.
ЛІТЕРАЛИ
 Літерали дозволяють задати в програмі значення для
числових, символьних і рядкових виразів, а також null-
літералів.
 Всього в Java визначено 6 видів літералів:
 цілочисельний (integer) - цілочисельні літерали дозволяють
задавати цілочисельні значення в десятковому, вісімковому і
шістнадцятковому вигляді;
 дробовий (floating-point) - дробові літерали представляють
собою числа з плаваючою десятковою крапкою. Правила
запису таких чисел такі ж, як і в більшості сучасних мов
програмування;
 булевий (boolean) - Логічні літерали мають два можливих
значення - true і false. Ці два зарезервованих слова не є
ключовими, але також не можуть використовуватися в якості
ідентифікатора;
ЛІТЕРАЛИ
 Ще три види літералів:
 символьний (character) - символьні літерали описують
один символ з набору Unicode, укладений в одиночні
лапки, або апострофи;
 строковий (string) - строкові літерали складаються з
набору символів і записуються в подвійних лапках;
 null-літерал (null-literal) - Null-літерал може приймати
всього одне значення: null. Це літерал посилального типу,
причому це посилання нікуди не посилається, об'єкт
відсутній. Зрозуміло, його можна застосовувати до
посилань будь-якого об'єктного типу даних.
РОЗДІЛЬНИКИ
 Роздільники - це спеціальні символи, які
використовуються в службових цілях мови.
 Призначення кожного з них буде розглянуто пізніше.

 Ось їх повний список:


() [] ();. ,
ОПЕРАТОРИ
 Мова Java створена на базі С++, тому більшість
операторів і конструкцій знайомі всім хто знає мови
С і С++
ОПЕРАТОРИ JAVA
 +,-,*,/,%
 +=

 =, == ,!=

 Особливість String +=,+.

 ++,--

 &&, ||,!
ПРІОРИТЕТ
 У операцій ділення і множення більший пріоритет.
ПРОСТІ КОМАНДИ ДРУКУ
 System.out.println(“….”);
ПРИСВОЄННЯ
 Для примітивних типів все просто.
 a=4;
 b=a;

 При присвоєнні об’єктів все змінюється!!!!!!


 Розглянемо приклад:
 AssignmentOfObjects
 StudentClass
ПОРІВНЯННЯ ОБ’ЄКТІВ НА РІВНІСТЬ
 Метод equals()
 Розглянемо приклад.
 EqualsOfObjects
ОПЕРАТОР IF
 if (логічний вираз) вираз або блок блок 1 else вираз
або блок 2
 String test = "smb";

 if( test.equals("value1") { ... }

 else if (test.equals("value2") { ... }

 else if (test.equals("value3") { ... }

 else { ... }
ОПЕРАТОР SWITCH
 switch(int value) {
 case const1: вираз або блок
 case const2: вираз або блок
 case constn: вираз або блок
 default: вираз або блок
 }
 Приклад:
 int x = 2;
 switch(x) {
 case 1: case 2:
 System.out.println("Дорівнює 1 або 2");

 break;

 case 3: case 4:
 System.out.println("Дорівнює 3 або 4");

 break;

 default: System.out.println( "Значення не визначене");


 }
ЦИКЛ WHILE
 while(логічний вираз) повторюваний вираз або блок; (блок
буде виконуватися до тих пір, поки логічний вираз буде мати
істинне значення)
 Приклад:
 public class Test {
 static int x = 5;
 public Test() { }
 public static void main(String[] args) {
 Test t = new Test();

 int x = 0;

 while(x < 5) {

 x++;
 if(x % 2 == 0) continue;

 System.out.print(" " + x);

 }
 }
 }
ЦИКЛ DO
 do повторюваний вираз або блок; while(логічний
вираз)
 буде виконуватись до тих пір, поки логічний вираз
буде істинним
 intcounter = 0;
 do {
 counter ++;
 System.out.println("Counter is " + counter);

} while(counter < 5);


ЦИКЛ FOR
 for(вираз ініціалізації; умова; вираз оновлення)
повторюваний вираз або блок;
 for(int counter=0;counter<10;counter++) {
 System.out.println("Counter is " + counter);
}
 for(;;){ ... }
 for(i = 0, j = 0; i<5;i++, j+=2) { ... }
ОПЕРАТОРИ BREAK І CONTINUE
 public class Test {
 public Test() {}
 public static void main(String[] args) {
 Test t = new Test();
 int [] x = {1,2,4,0,8};

 int y = 8;

 for(int cnt=0; cnt < x.length; cnt++) {

 if(0 == x[cnt]) break;

 System.out.println("y/x = " + y/x[cnt]); }

}

 }
ТЕНАРНИЙ ОПЕРАТОР «ЯКЩО-
ІНАКШЕ»
 Логічна умова ? Вираз0:вираз1
 (i==0) ? x=y : x=y/i;
FOREACH
 Варіант for для перебору масивів і колекцій.
 public class ForEachFloat {
 public static void main (String[] args){
 Random rand = new Randow(47);

 float f[] = new float[10];

 for (int i=0; i<10; i++)

 f[i] = rand.nextFloat();
 for(float x:f)
 System.out.println(x);
 }
}
 Розглянемо приклад ForEachExample
ЧИСЛА ПІДВИЩЕНОЇ ТОЧНОСТІ
 В Java існує два класи для проведення арифметичних
операцій підвищеної точності:
 BigInteger
 BigDecimal

 Обидва класи містять методи, що здійснюють


операції, що аналогічні тим, що проводяться над
примітивними типами.
 BigNumbersExample
ВИВІД ОБ’ЄКТА
 метод toString()
 приклад StudentClass
STATIC І ПЕРШІ ПРОБЛЕМИ
 Зазвичай при створенні класу ви описуєте як
поводитимуться об’єкти.
 Об’єкт з’являється тільки після того, як він буде
створений ключовим словом new і тільки починаючи
з цього моменту для нього виділяється пам’ять і
з’являється можливість виклику методів.
STATIC
 Але існує дві ситуації, в яких такого підходу
недостатньо:
 Коли дані мають зберігатися в одному варіанті,
незалежно від того скільки було створено об’єктів класу.
 Коли вам необхідно мати метод, що не прив’язаний до
жодного об’єкту.
 Такий ефект досягається ключовим словом static, що
робить елемент класу статичним.
STATIC
 Розглянемо приклади:
 StaticClassExampleUsage
 StaticClassExample
 Дякую за увагу.

You might also like