Дипломная работа: Створення навчальної програми по вивченню іноземної мови
java.io — потоки і файли довільного доступу; аналог бібліотеки стандартного введення-виведення системи UNIX; підтримка мережевого доступу (sockets, telnet, URL) міститься в пакеті java.net;
java.util — класи-контейнери (Dictionary, HashTable, Stack) і деякі інші утиліти; кодування і декодування. Класи Date і Time;
java.awt — Abstract Windowing Toolkit, незалежний віконний інтерфейс, що дозволяє запускати інтерактивні віконні Java-програми на будь-якій платформі; містить базові компоненти інтерфейсу, такі як події, кольори, шрифти, а також основні віконні елементи — кнопки, scrollbars і т.п..
Результат — новий підхід до розподілених обчислень.
Кожна з перерахованих характеристик окремо може бути знайдена в уже існуючих програмних пакетах. Новим є з'єднання їх в струнку несуперечливу систему, яка повинна стати загальним стандартом.
На сьогоднішній день найбільш популярними мовами програмування є С і С++. З них двох лише С++ претендує на об'єктну орієнтацію. Характеристики цієї мови складалися в ході довгої історії її розвитку, причому досить хаотично, кожна нова властивість не відміняла всіх попередніх. Стандарт мови до цих пір не зафіксований, оскільки нові властивості продовжують з'являтися до цього дня.
В результаті С++ стала нескінченно складною і надмірною — одну і ту ж операцію можливо реалізувати на мові безліччю способів.
Java є новою точкою відліку в програмному забезпеченні. Розробники мови узяли за основу С++, потім методично видалили з нього риси, які:
- роблять неможливим контроль безпеки додатків;
- не є абсолютно необхідними, частіше заважають програмістові, чим полегшують його завдання;
- є джерелом складних і пізно розпізнаваних помилок.
В той же час в мові Java повністю збережений “дух” програмування на С++, досвідченим С++ - програмістам буде потрібно один-два тижні на освоєння самої мови, а величезний об'єм програмного забезпечення, вже створеного з використанням С++, може бути адаптований під нову мову відносно легко.
У мові Java, так само як і в С++, існує набір вбудованих типів даних, які (так само як і в С++) не є об'єктами. Набір їх також схожий з набором базових типів С++ за деякими виключеннями.
Numeric - характерною відмінністю від С++ є те, що бінарне представлення чисел відтепер фіксоване:
- цілі числа: 8-бит byte, 16-бит short, 32-бит int, 64-бит long; всі числа із знаком, ключ unsigned з мови видалені;
- числа з плаваючою крапкою; 32-біт float, 64-біт double; подання повинне відповідати стандарту IEEE 754.
Character - відрізняються від С++ як синтаксисом, так і уявленням. Тип character є 16-розрядне число без знаку (діапазон 0-65,535). Кодування відповідає стандарту Unicode. Внаслідок того, що це кодування в ідеалі повинне охоплювати всі мови, що існують в світі, це уявлення повинне полегшити локалізацію програм.
Boolean - тип даних не виділений в С++, проте неявно присутній практично у всіх програмах. У Java тип називається boolean, може приймати значення true і false і не може (на відміну від С++) бути перетворений в інший тип.
Доданий новий оператор >>> логічного зсуву управо (так як немає беззнакових цілих чисел). Вбудована операція злиття рядків (оператор +).
На відмінність від С++ масиви в Java є повноцінними об'єктами з певним runtime уявленням. Декларація:
- Point myPoints[]; резервує посилання на масив, а не місце під реальний об'єкт; сам масив може бути потім створений виконанням;
- myPoints = new Point[10]; а його елементи заповнені операцією типу: myPoints[2]= new Point(); розмір масиву може бути отриманий під час виконання програми: howMany = myPoints.length;
Значення індексу перевіряється при кожному зверненні, при помилці викликається виняткова ситуація.
Покажчики повністю виключені з мови разом з цілою категорією важко вловимих помилок “сповільненої дії”. До того ж наявність покажчиків суперечить вимогам безпеки і ускладнює реалізацію складальника сміття.
Рядки Strings в Java є повноцінними об'єктами. Вони діляться на текстові константи (Strings) і рядки, що модифікуються (StringBuffer). Компілятор дозволяє явно визначати текстові літерали в програмі подібно до того, як це робиться в С++.
String hello = “Hello world!”; Посилання hello ініціюється об'єктом класу String на основі представлення “Hello world!” у кодуванні Unicode.
Оператор “+” може бути застосований до рядків, наприклад: System.out.println(”There are” + num + “characters in the file.”);
В Java відсутній вираз goto. Аналіз С/С++ текстів показав, що переважне число випадків використання цього оператора пов'язане з необхідністю виходу з вкладеного циклу. Для відлагодження таких ситуацій в Java перед початком блоку може ставитися мітка, а інструкції break і continue також можуть супроводжуватися міткою, на яку повинен бути здійснений перехід. Наприклад: test: for(int i = 0; i < 10; i++) for(int j = 0; j < 10; j++) if( i > 3) break test;
Необхідність явно управляти пам'яттю в С/С++ програмах завжди була проблемою для програмістів. Мало того, що самі програми рясніли викликами функції free або операторами delete, безпосередньо до логіки програми вони відношення не мають.