уктора без аргументу:
("Anonymous");
У наступній програмі з'являється порожній конструктор, ConstructorExample2 (приклад конструктора 2), щоб продемонструвати введення даного блоку ініціалізації. br/>
public class ConstructorExample2 {final String userName; static final int [] square = new int [10];
{(int i = 0; i <10; i + +) {[i] = i * i;
}
} ConstructorExample2 () {= "Anonymous";
} ConstructorExample2 (String userName) {. userName = userName;
} void printSquare (int i) {
// Ні обробки помилки, припустимо, 0 <= i
System.out.println ("Hello" + userName);. out.println (i + "squared is" + square [i]);
} static void main (String [] args) {ConstructorExample2 (). printSquare (3); ConstructorExample2 ("Ed"). printSquare (5);
}
}
Одного разу, спробувавши працювати з блоками ініціалізації, можливо знайти для них багато додатків. Можна переконатися, що статичні і динамічні ініціалізатори дуже зручні. p align="justify"> ініціалізація java файл програма
2. Читання і запис файлів
Переважна більшість програм обмінюється даними з зовнішнім світом. Це, безумовно, роблять будь-які мережеві додатки - вони передають і отримують інформацію від інших комп'ютерів і спеціальних пристроїв, підключених до мережі. Виявляється, можна точно таким же чином представляти обмін даними між пристроями всередині однієї машини. Так, наприклад, програма може зчитувати дані з клавіатури і записувати їх у файл, або ж навпаки - зчитувати дані з файлу і виводити їх на екран. Таким чином, пристрої, звідки може проводитися зчитування інформації, можуть бути найрізноманітнішими - файл, клавіатура, що входить мережеве з'єднання і т.д. Те ж стосується і пристроїв виводу - це може бути файл, екран монітора, принтер, що виходить мережеве з'єднання і т.п. У кінцевому рахунку, всі дані в комп'ютерній системі в процесі обробки передаються від пристроїв введення до пристроїв виводу. p align="justify"> Зазвичай частина обчислювальної платформи, яка відповідає за обмін даними, так і називається - система введення/виведення. У Java вона представлена ​​пакетом java.io (input/output). Реалізація системи введення/виведення ускладнюється не тільки широким спектром джерел та одержувачів даних, але ще і різними форматами передачі інформації. Нею можна обмінюватися в двійковому поданні, символьному чи текстовому, із застосуванням деякої кодування (тільки для російської мови їх налічується більше 4 штук), або передавати числа в різних виставах. Доступ до даних може знадобитися як послідовний (наприклад, зчитування HTML-сторінки), так і довільний (складна робота з декількома частинами одного файлу). Найчастіше для підвищення продуктивності застосовується буферизація. p align="justify"> У Java для опису роботи з введення/висновку використовується спеціальне поняття потік даних (stream). Потік даних пов'язаний з деяким джерелом, або приймачем, даних, здатним отримувати або надавати інформацію. Відповідно, потоки діляться на вхідні - читають дані і виходять - передавальні (записуючі) дані. Введення концепції stream дозволяє відокремити основну логіку програми, обмінюється інформацією з будь-якими пристроями однаковим чином, від низькорівневих операцій з такими пристроями введення/виводу. p align="justify"> У Java потоки природним чином представляються об'єктами. Описують їх класи якраз і складають основну частину пакета java.io. Вони досить різноманітні і відповідають за різну функціональність. Всі класи розділені на дві частини - одні здійснюють введення даних, інші - висновок. p align="justify"> Існуючі стандартні класи допомагають вирішити більшість типових завдань. Мінімальною "порцією" інформації є, як відомо, біт, що приймає значення 0 або 1 (це поняття також зручно застосовувати на найнижчому рівні, де дані передаються електричним сигналом; умовно кажучи, 1 представляється проходженням імпульсу, 0 - його відсутністю). Традиційно використовується більш велика одиниця виміру - байт, що об'єднує 8 біт. Таким чином, значення, представлене одним байтом, знаходиться в діапазоні від 0 до 28-1 = 255, або, якщо використовувати знак, - від -128 до +127. Примітивний тип byte в Java в точності відповідає останньому - знаковому діапазону. p align="justify"> Базові, найбільш універсальні, класи дозволяють зчитувати і записувати інформацію саме у вигляді набору байт. Щоб їх було зручно застосовувати в різних завданнях, java.io містить також класи, перетворюють будь-які дані в набір байт. p align="justify"> Наприклад, якщо потрібно зберегти результати обчислень - набір значень типу double - у файл, то їх можна...