Хелпикс

Главная

Контакты

Случайная статья





Лекція № 2



Лекція № 2

Тема:  Методи, масиви і рядки в Java

Мета: 

- сформулювати поняття методів, масивів та рядків у мові Java;

- ознайомити студентів з методами для роботи з рядками;

- досягти усвідомлення ними важливості застосування методів.

План

1. Методи в Java

2. Масиви

3. Робота з рядками

4. Заголовок методу main()

 

Література: 

 

1. Патрик Ноутон, Герберт Шилдт – Java 2. - Издательство: BHV, 2005 г.

2. Герберт Шилдт. Java. Полное руководство, 8-е узд.: Пер. С англ. – М.: ООО«И.Д. Вильямс», 2012. – 1104 с.

 

Виклад лекційного матеріалу

1 Методи в Java

1.1 Поняття функції і методу

Функція – частина програми, що має власне ім'я. Це ім'я можна використовувати у програмі як команду (така команда називається викликом функції). При виклику функції виконуються команди, з яких вона складається. Виклик функції може повертати значення (аналогічно операції) і тому може використовуватися у виразах поряд з операціями.

Функції використовуються в програмуванні, щоб зменшити його складність:

1. Замість того, щоб писати безперервну послідовність команд, в якій незабаром перестаєш орієнтуватися, програму розбивають на підпрограми, кожна з яких вирішує невелику закінчену задачу, а потім велика програма складається з цих підпрограм (цей прийом називається декомпозицією).

2. Зменшується загальна кількість коду, тому що, як правило, одна функція використовується в програмі кілька разів.

3. Написана одного разу і всебічно перевірена функція, може бути включена в бібліотеку функцій і використовуватися в інших програмах (при цьому не треба згадувати, як була запрограмована ця функція, достатньо знати, що вона робить). Існує безліч корисних бібліотек функцій, якими можуть користуватися всі програмісти, а деякі бібліотеки поставляються «в комплекті» з мовою програмування (наприклад, всі, хто програмував на Паскалі, користувалися бібліотечною функцією writeln() для виводу на екран, а в Java для цих цілей доступний метод System.out.println (), що входить в одну із стандартних бібліотек).

Метод – це функція, що є частиною деякого класу, яка може виконувати операції над даними цього класу. У мові Java вся програма складається тільки з класів і функції можуть описуватися тільки всередині них. Саме тому всі функції в мові Java є методами.

 

1.2 Оголошення методу

Для того, щоб використовувати в програмі власний метод, його необхідно оголосити.

При оголошенні методу необхідно вказати тип значення, яке буде повернуто після виконання методу в програму. Якщо значення повертати не потрібно, вказується ключове слово void. Потім йде довільний ідентифікатор - ім'я методу. Після імені методу в круглих дужках вказується список параметрів (може бути порожнім), а потім - у фігурних дужках - команди, складові тіла методу.

Параметри - це дані, які потрібні методу для роботи. Наприклад, метод, який малює коло, повинен отримати радіус і координати центру кола. (Можна, звичайно, було б розробити метод без параметрів, який малює коло одиничного радіуса з центром в початку координат, але він був би значно менш корисний).

Опис кожного параметра аналогічно оголошенню змінної (тип, а потім ідентифікатор - ім'я параметра). Параметри перераховуються через кому.

У тілі методу, що повертає значення, повинна бути команда return, після якої через пробіл вказується вираз відповідного типу. Ця команда закінчує роботу методу і передає зазначений вираз у якості значення, що повертається основній програмі - в те місце, звідки метод був викликаний.

Як приклад створимо метод для обчислення суми квадратів двох цілих чисел. Як і у випадку з програмою, важливо в першу чергу визначити вхідні і вихідні дані. Вхідні дані - це параметри методу. Вихідні дані - це його повернене значення.

Зауваження: в об'єктно-орієнтованій концепції акцент дещо інший. Методи можуть отримувати дані для роботи, звертаючись до атрибутів свого класу, а результат їхньої роботи може полягати у зміні цих атрибутів. Проте в рамках даної лекції ми розглядаємо методи як класичні функції - підпрограми.

Вхідними даними для розглянутого методу будуть, очевидно, два цілих числа. Вихідні дані (результат) - ціле число, яке представляє собою суму їх квадратів.

Найпростіший варіант методу буде виглядати наступним чином:

 long squearSum (int x, int y) {

        return x * x + y * y;

        }

Перед типом, який повертатимемо вказується одне або декілька ключових слів модифікаторів (які будуть вивчені пізніше). Нам необхідно додати до оголошення методу squearSum() модифікатор static, оскільки ми збираємося звертатися до нього з методу main(), що має такий модифікатор.

Опис методу squearSum() повинен знаходитися всередині того єдиного класу, з якого складається наша проста програма, але не всередині методу main (), а на одному рівні з ним. Тобто:

package mainPack;

  public class MyClass {

  /**

  * @ Param args

  */

  public static void main (String [] args) {

  // TODO Auto-generated method stub

  }

  static long squearSum (int x, int y) {

  return x * x + y * y;

  }

  }

У результаті в класі MyClass тепер два методи, один з яких, main(), виконується при старті програми. Щоб виконався другий метод, його необхідно викликати.

 

1.3 Виклик методу

Щоб викликати метод з іншого методу того ж класу, необхідно вказати його ім'я, а потім в дужках список фактичних параметрів (якщо метод не вимагає параметрів, дужки все одно ставляться).

Наприклад, ми можемо звернутися до описаного нами методу squearSum(), передавши йому в якості параметрів два цілих числа 10 і 20 наступним чином:

System.out.println(squearSum(10,20) +1);

В консоль буде виведено число 501.

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

Щоб викликати метод іншого класу, необхідно мати об'єкт цього класу (Якщо метод не оголошений як статичний). Ім'я методу вказується через крапку після імені об'єкта.

Наприклад, у класі String (рядок) є метод length(), який повертає довжину рядка. Звернутися до цього методу можна тільки через об'єкт класу String (що цілком логічно, метод викликається для того рядка, довжину якого ми хочемо дізнатися).

String S = "Привіт"; // Створення об'єкта класу String, докладніше див нижче

  int x = S.length (); // Виклик методу length() для об'єкта S. В результаті x = 6

Надалі, розповідаючи про будь-які методи, ми будемо називати їх не тільки ім'ям, але й для наочності вказувати в дужках параметри методу, наприклад сharAt(int i). У результаті стає легко пояснити призначення методу: «Метод charAt (int i) повертає символ рядка з індексом i». Тип значення, що повертається ми будемо вказувати тільки при необхідності.

 

2 Масиви

2.1 Визначення

Масив - це сукупність змінних одного типу, що мають загальне ім'я. Кожна така змінна називається елементом масиву. З кожним елементом пов'язано ціле число - індекс, який використовується (разом з іменем масиву) для звертання до нього.

2.2 Створення масиву

Створення масиву відбувається в два етапи.

1. Оголошення масиву. На цьому етапі створюється змінна типу посилання на масив, за допомогою якої ми зможемо потім до масиву звертатися. Для цього вказується тип елементів масиву, потім квадратні дужки (вони показують, що ми маємо справу з масивом, а не зі звичайним типом даних) і ідентифікатор - ім'я масиву. Ідентифікаторів може бути кілька (як і у випадку зі змінними простих типів).

Приклади:

int [] a; // Створюється посилання на масив типу int

  double [] b, c; // Створюються два посилання на масиви типу double

2. Створення масиву. Створити масив - значить виділити в пам'яті місце, достатнє для зберігання всіх його елементів. Для цього треба вказати довжину масиву - кількість елементів у ньому. Крім того, змінна-посилання, оголошена на попередньому етапі, тепер буде «вказувати» не в порожнечу (в Java ця «порожнеча» називається null), а на конкретний масив, з елементами якого можна працювати.

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

a = new int [5]; // В пам'яті виділяється місце під масив з п'яти цілочисельних елементів, змінна a буде вказувати на цей масив

  b = new double [4]; // В пам'яті виділяється місце під масив з чотирьох дійсних елементів, на нього вказує змінна b

При цьому елементам масиву привласнюються значення за замовчуванням. Можна відразу проініціалізувати масив потрібними значеннями, якщо перерахувати їх через кому в фігурних дужках (довжина масиву при цьому не вказується):

c = new double [] {2.3, 1.02, 8}; // В пам'яті виділяється місце під масив з трьох дійсних елементів, на нього вказує змінна с, елементи масиву відразу отримують потрібні значення

 

3 Робота з рядками

3.1 Створення рядків

Рядки теж є змінними типу посилання, а точніше – посиланнями на об'єкти одного з декількох рядкових класів Java. Розглянемо клас String.

Найпоширеніший спосіб створити рядок – це організувати посилання типу String на рядок-константу:

String s = "Це рядок"

Можна просто спочатку оголосити змінну (яка отримає значення null), а потім змусити її посилатися на рядок-константу, інший рядок або скористатися командою new, щоб явним чином виділити пам'ять для рядка:

String s1, s2, s3; // Оголошення трьох змінних, які поки не пов'язані ні з яким рядком

s1 = "Хай живе день студента"; // Змінна s1 тепер посилається на область пам'яті, у якій зберігається   

                      //рядок "Хай живе день студента"

s2 = s1; // Тепер обидві змінні s1 і s2 посилаються на одне і те ж місце пам'яті

s3 = new String (); // s3 посилається на місце в пам'яті, де зберігається порожній рядок

 

3.2 Зміна регістру символів в рядку

Метод toLowerCase() повертає новий рядок, в якому всі букви зроблені рядковими. Метод toUpperCase() повертає новий рядок, в якому всі букви зроблені прописними.

S = S.toUpperCase (); // S = "ПРИВІТ, СВІТ!"

 

4 Заголовок методу main()

Тепер ми можемо, нарешті, зрозуміти більшу частину опису методу main() (за винятком ключових слів public і static).

Тема public static void main (String [] args) означає, що метод main() не повертає значення (і дійсно, ми жодного разу не використали в його тілі команду return), а в якості єдиного параметра приймає масив рядків args.

В якості параметра args методу main () передаються так звані аргументи командного рядка. Справа в тому, що кожну програму можна запустити не просто клацнувши мишкою по її значку. Можна ввести ім'я виконуваного файлу програми в командному рядку (натисніть комбінацію Windows + R, щоб побачити командний рядок Windows, якщо ви працюєте в цій операційній системі), а після імені через пробіл вказати один або кілька додаткових параметрів (аргументів командного рядка).

Таким чином, в методі main () можна звернутися до елементів масиву args і побачити, які додаткові аргументи користувач вказав при запуску програму. Можна навчити програму на деякі з цих аргументів реагувати.

При цьому необов'язково запускати програму з командного рядка. У діалоговому вікні Run -> Run ... є вкладка (x) = Arguments, перейшовши на яку, можна перерахувати аргументи командного рядка і в залежності від них протестувати реакцію програми. Якщо, звичайно, це необхідно: більшість програм ніяк не реагує на аргументи командного рядка.

 

Контрольні питання

1. Дайте визначення методу у Java?

2. Дайте визначення функції у Java?

3. Опишіть як відбувається оголошення методу у Java?

4. Опишіть як відбувається виклик методу у Java?

5. Дайте визначення масиву та опишіть як відбувається оголошення масиву у Java?

6. Опишіть роботу з рядками у Java?

 

 


 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.