X Код для використання на сайті:
Ширина px

Скопіюйте цей код і вставте його на свій сайт

X Для завантаження презентації, скористайтесь соціальною кнопкою для рекомендації сервісу SvitPPT Завантажити собі цю презентацію

Презентація на тему:
Базові можливості мови Java

Завантажити презентацію

Базові можливості мови Java

Завантажити презентацію

Презентація по слайдам:

Слайд 1

Тема №2 Базові можливості мови Java

Слайд 2

Типи даних Основні категорії типів: примітивні (прості) і вказівникові. Вказівникові: масиви, класи (в тому числі – рядки), інтерфейси. Часто також називаються об’єктними типами. Прості типи (їх 8) ведуть себе подібно до своїх аналогів в інших МП. Наприклад, оголошення int a; означає, що створюється змінна типу int і під неї виділяється певний об’єм оперативної пам’яті. Змінні вказівникових типів ведуть себе аналогічно до вказівників. Спеціальне значення для пустого вказівника – null.

Слайд 3

Характерний приклад Нехай є клас Kl і оголошення Kl ekz; Чи означає це оголошення створення екземпляру класу і виділення пам’яті під нього? Ні, створюється лише покажчик відповідного типу. Сам екземпляр створюється шляхом виклику конструктора класу: Kl ekz = new Kl(…);

Слайд 4

Ще один приклад: безпосереднє створення списків Завдання: написати на Java програму, яка створює зв’язаний список з декількох цілих чисел, а потім переглядає його. Колекції не використовувати; обійтися низькорівневими операціями, аналогічними традиційним операціям з покажчиками.

Слайд 5

Приклад на С++ struct Node { int N; Node* p; } ; Node* beg=0; Node* pointer; for (int i=1; i

Слайд 6

Змінні та ідентифікатори Розрізняються великі та малі літери. В іменах - Unicode; можна використовувати не тільки латиницю. Змінні перед використанням повинні бути ініціалізовані. Особливості: для елементів масивів і полів класів (вони ініціалізуються значеннями за замовченням). Область видимості змінної - блок, але змінну, оголошену в блоці, не можна повторно оголошувати у підблоці.

Слайд 7

Так можна… public class oblzm { public static void main (String args[]){ int i =5; { int j=2; System.out.println("Result is "+i*j); } } }

Слайд 8

А так не можна public class oblzm { public static void main (String args[]){ int i =5; { int j=2; } System.out.println("Result is "+i*j); } }

Слайд 9

І так теж не можна public class oblzm { public static void main (String args[]){ int i =5; { int j=2; int i=4; System.out.println("Result is "+i*j); } } }

Слайд 10

Типовий приклад: що виведе програма? public class inittest { public static void main (String[] args) { int a=5; int b; if (a=0) b=50; System.out.println(b); } }

Слайд 11

Оголошення констант Використовується модифікатор final.

Слайд 12

Цілочисельні типи byte (1 байт); short (2 байти); int (4 байти); long (8 байтів). Найбільш вживаний тип - int. Всі цілочисельні типи є знаковими. На початку 8-кових констант ставиться 0, на початку 16-кових - 0х. Довгі цілі повинні завершуватися літерою L. Оператор / є цілочисельним діленням.

Слайд 13

Дійсні типи float (32 біти); double (64 біти). Найчастіше (і за замовченням) - double.

Слайд 14

Символьний тип Тип char для зберігання символів. 2 байти; код Unicode. Константи - в одинарних лапках (на відміну від рядків). Спеціальні символи, наприклад, '\n' . Або '\uкод' - символ з відповідним Unicode-кодом. Така конструкція може зустрічатися навіть в ідентифікаторах. Можна виконувати деякі операції, характерні для цілих чисел.

Слайд 15

Приклад: програма addchars.java import java.io.*; public class addchars { public static void main(String args[]) throws Exception {char a='A'; char b= '\u0001' ; int s=b+a; System.out.println((char) s); int ch=System.in.read(); } }

Слайд 16

Булевий тип Тип boolean. Два значення: true і false. Особливість: не можна оперувати цілими числами подібно до булевих.

Слайд 17

Невеликий quiz: в чому різниця між (l) та (n-l) public static void main(String[] args) { boolean b; b = M1()&&M2(); // (l) System.out.println(b); System.out.println("-----------------"); b=M1()&M2(); // (n-l) System.out.println(b); } public static boolean M1() { System.out.println("M1 worked"); return false; } public static boolean M2() { System.out.println("M2 worked"); return true; }

Слайд 18

Перетворення та приведення типів Розширююче перетворення здійснюється автоматично (напр., якщо змінній int присвоїти змінну byte). Для звужуючого перетворення - явне приведення. Тип char може бути піднятий до int. Не можна перетворювати цілий тип на булевий і навпаки. У виразах здійснюється автоматичне розширююче перетворення. Є спеціальні правила. Це може породити певні проблеми.

Слайд 19

Розширююче перетворення: приклад проблеми byte b=50; b=b+b; - неправильно. Треба: b=(byte) (b+b);

Слайд 20

Поняття про об’єктні оболонки Класи Integer і т.п. Інкапсулюють методи, пов’язані з простими типами. Автоупаковка/авторозпаковка (починаючи з Java 5).

Слайд 21

Автоупаковка - приклад public static void main (String[] args) { Integer iob=100; int i =iob/20; System.out.println(iob+" "+i); }

Слайд 22

Рядки. Клас String Всі рядки є екземплярами класу String. Рядки не можна розглядати як масиви символів! Типове створення: String S = “рядок”; (в подвійних дужках).

Слайд 23

Рядки: так не можна… String s="hello"; System.out.println(s[2]);

Слайд 24

Конкатенація – цікаві ефекти int a=5; int b=3; String S="-output-"; System.out.println (S+a+b); System.out.println (a+b+S);

Слайд 25

Рядок з примітивного типу – простий спосіб String S = ""+2;

Слайд 26

Незмінюваність рядків Рядки є незмінюваними! Можна S=… або S+=…, але це операції з вказівниками. Щоб змінювати рядок - клас StringBuilder (або більш старий клас StringBuffer).

Слайд 27

Рядки: основні операції Для порівняння - метод equals, а не ==. Деякі найважливіші методи: length() - довжина рядка; char charAt(i) - символ у певній позиції; пошук рядка або символа: int indexOf(String S); int indexOf(char c); String substring(int Beg,int End) - виділення підрядка. Починаючи з 1.4 - регулярні вирази; синтаксис аналогічний Perl. Є спеціальний пакет, але деякі функції є в класі String. Зокрема, split – розщеплення рядка. Клас StringTokenizer з пакету java.util -розщеплення рядка.

Слайд 28

Приклад використання StringBuilder StringBuilder S = new StringBuilder ("This is"); S.append(" a string");

Слайд 29

Невеликий тест Яким буде результат виконання коду: public class stringtest { public static void main (String args[]) { String str1="abc"; String str2="def"; String str3=str1.concat(str2); str1.concat(str2); System.out.println(str1+str3); } } а) abc; б) abcabc; в) abcdef; г) abcabcdef; д) abcdefabcdef; e) defabc.

Слайд 30

Використання split String s="2 5 3"; String [] sar = s.split(" "); int sum=0; for (String ss:sar) {sum+=Integer.parseInt(ss); } System.out.println("Result is "+sum);

Слайд 31

Використання StringTokenizer: приклад StringTokenizer st=new StringTokenizer(Str," "); while (st.hasMoreTokens()) { parsedStr[Ind++]=st.nextToken(); }

Слайд 32

Форматоване введення-виведення З Java 5 – зручні засоби введення-виведення. Клас Scanner. Функція printf. Клас Formatter.

Слайд 33

Форматоване введення-виведення: приклад Scanner sc = new Scanner(System.in); System.out.println("What is your name?"); String s = sc.nextLine(); System.out.printf("Welcome, %s\n",s); System.out.println("How old are you?"); int q = sc.nextInt(); System.out.printf("Your %d years were lucky",q);

Слайд 34

Масиви Також відносяться до вказівникових типів. Типове створення: int [] arr = new int[5] - створює цілочисельний масив з 5 елементів. Альтернативний синтаксис: квадратні дужки в оголошенні можна переставити. При такому створенні масиву його елементи ініціалізуються значеннями за замовченням. Для кількості елементів можна використати змінні. Нумерація починається з 0.

Слайд 35

Масиви: продовження Масиви можна ініціалізовувати при оголошенні: масиви-літерали: int[] arr={10,20,30}; Взагалі, масив ініціалізується під час виконання програми, тому в дужках можуть бути і вирази. Анонімні масиви: new M[] {…} Багатовимірні масиви - по суті масиви масивів. Наприклад: int arr[][] = new int[5][6]; Можуть бути і “нерівні” масиви.

Слайд 36

Параметри командного рядка Одне з типових використань масивів. Задаються як аргументи функції main (String arg[ ]).

Слайд 37

Масиви: операції Довжина масиву - arr.length (зверніть увагу на синтаксис). Методи для копіювання масивів (метод arraycopy класу System, з Java 6 – Arrays.copyOf). В пакеті java.util є клас Arrays. Ряд корисних методів, наприклад, пошук, сортування і т.д.

Слайд 38

Приклади надання значень для різних типів даних Приклади для простих типів, об’єктів і рядків.

Слайд 39

Прості типи vA vB a b b=a; b=v1; вив. а; /* буде виведено vA */

Слайд 40

Екземпляри класів a vN1a N1 vN2a N2 b vN1b N1 vN2b N2 b=a; b.N1=vNEW; вив. a.N1; //vNEW

Слайд 41

Рядки: особливість a “AAAA” b “BBBB” b=a; b=“CCCC”; вив. а; //AAAA “CCCC”

Слайд 42

Основні операції Java Набір операцій (операторів) Java схожий на набір операцій в С. Деякі характерні особливості: беззнаковий зсув >>>; оператор instanceof (зліва - назва об’єкту або масиву; справа - вказівниковий тип); рівність (==): особливості для простих типів і для вказівникових типів

Слайд 43

Основні інструкції Три типи коментарів: //, /* та /**. Основні інструкції: умовні операції, switch, цикли - аналогічно С. Немає інструкції безумовного переходу. Але є мітки, які можна використовувати в операторах break і continue. З цим пов’язана характерна особливість: вийти можна не тільки з поточного циклу, але і з будь- якого зовнішнього. Аналогічні, хоч і не ідентичні, риси має continue.

Слайд 44

Приклад L: for … { for…{ break L; } }

Слайд 45

Більш загально За допомогою break можна припинити виконання не тільки циклу, але і будь-якого складеного оператора.

Слайд 46

Модифікований цикл for (з Java 5) Приклад: for (int i: Mas) {тіло циклу } Приклад: написати програму, яка знаходить суму елементів масиву з використанням модифікованого for.

Слайд 47

Підрахунок суми public static void main (String args[]) { int[] nums = {1,2,3,4,5}; int S=0; for (int i:nums) S+=i; System.out.println(S); }

Слайд 48

Передача параметрів методів Параметри методів у Java передаються за значенням. Але, якщо для параметрів примітивних типів передаються самі ці значення, то для вказівникових типів - значення вказівників на них.

Слайд 49

Параметр-проста змінна a копія a Не змінюється void Change(int a) {a=…} Change(a);

Слайд 50

Параметр-посилання на об’єкт a копія a Змінюється void Change(Kl a) {a.поле=…} Change(a);

Слайд 51

Параметр - рядок S копія S Не змінюється void Change(String S) {S=…} Change(S);

Слайд 52

Важливий приклад Процедура, яка повинна міняти місцями свої параметри: void swap (Kl a, Kl b) { Kl temp=a; a=b; b=temp; }

Слайд 53

Приклад: продовження Не працює. Метод замінює значення копій посилань, але самі посилання в основній програмі не змінюються.

Слайд 54

Функції зі змінною кількістю параметрів – з Java 5 (приклад) static public int va_sum (int ... v) { int S=0; for (int i:v) { S+=i; } return S; } public static void main (String[] args) { int S = va_sum(3,5,24); System.out.println(S); }

Слайд 55

Або: з більш класичним циклом static public int va_sum (int ... v) { int S=0; for (int i=0; i

Слайд 56

Клас Date - приклад System.out.println("Now is "+new Date());

Слайд 57

Випадкові числа Метод random класу Math – повертає дійсне число в діапазоні від 0 до 1. Клас java.util.Random.

Слайд 58

Випадкові числа – приклад 1 for (int i=0; i

Слайд 59

Випадкові числа – приклад 2 int[] rin = new int[20]; Random rd = new Random(); for (int i=0; i

Завантажити презентацію

Презентації по предмету Інформатика