Основні апгоритмічні структури мови Java

Страницы работы

Содержание работы

Об'ектно-opieHTOBaHe програмування                                                                                                                                                                                     Java2

Лабораторнаробота2 " Основшапгоритм\чн\ структурымоей Java"

1.  Обчислити значения функцм, що задана у таблица Зберегти значения функцм та м аргументу в ycix точках
вказаного штервалу i3 заданим кроком у масивах.

2.  ГИсля формування масив1в знайти i вивести найб1льше та найменше значення елемент1в масиву значень
функцм, вказавши, для яких значень аргументу вони е вщповщними.

3.  Знайти та вивести суму та середнс арифметичне елемеьтв масиву значень функцм.


Об'єктно-орієнтоване програмування                                                                                                                                                                                         Java2

Короткі теоретичні відомості

Посилальнітипи

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

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

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

Більшість мов дозволяють програмісту визначати нові типи. Наприклад, у мові С нові типи можна створювати за допомогою оператора struct, а в Pascal - за допомогою записів (record). Мова Java дозволяє визначати нові типи за допомогою класів (class), а також за допомогою інтерфейсів (interface).

На найпростішому рівні розгляду класи схожі на структури або записи - вони теж дозволяють зберігати набори змінних різних типів. Однак є і важлива відмінність: класи крім змінних можуть містити в собі також і методи. Нижче приведений приклад оголошення нового типу, названого "МуТуре". Ключове слово public, що стоїть перед визначенням типу, є так званим модифікатором доступу (access modifier) і вказує на те, що доступ до даних членів класу можуть одержати методи, що не входять у даний клас.

Приклад 2.1. class МуТуре {

public int myDataMember = 4; public void myMethodMember() {

System.out.println("I'm a member!"); System.out.println("myData=" + myDataMember); } }

Ви, імовірно, звернули увагу на те, що цей приклад нагадує за структурою власне програми мовою Java, що зустрічались раніше. Ця подібність відображує ту подвійну роль, яку класи грають у мові Java. У програмах, що розглядались у першій лабораторній роботі, класи використовувалися як засіб організації вмісту - даних і алгоритмів кожної програми. Але класи можуть також використовуватися і для визначення нових типів. Змінні типів, визначених через класи, називаються об'єктами, або реалізаціями чи екземплярами відповідних класів. Створення чи реалізація об'єкта здійснюється за допомогою того ж оператора new, а доступ до членів (складових частин) класу - за допомогою оператора "крапка" (.).

Приклад 2.2.

public class RunMe {

public static void main(String ARGV[]) { МуТуре Mine = new МуТуре(); int і = Mine.myDataMember; Mine.myMethodMember(); } }

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

2


Об'єктно-орієнтоване програмування                                                                                                                                                    Java2

I'm a member! myData=4

Оскільки тип myDataType є посилальним типом, ми повинні використовувати оператор new. Цей оператор запитує в системи визначену кількість пам'яті для збереження нашого об'єкта. Крім того, ми можемо визначити, які ще дії повинні виконуватися в момент реалізації класу, визначивши так званий конструктор (constructor). Ось як виглядає конструктор для типу myDataType, єдина функція якого - повідомити про те, що відбувається реалізація класу. Приклад 2.3.  Конструктор, який повідомляє про реалізацію класу. publicclassMyType   {

Похожие материалы

Информация о работе