русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Клонування


Дата додавання: 2014-05-29; переглядів: 930.


Механізм клонування, як слідує з назви, дозволяє породжувати нові об'єкти на основі існуючого, які володіли б точно таким же станом, що й вихідний. Тобто очікується, що для вихідного об'єкта, представленого посиланням x, і результату клонування, що повертається методом x.clone(), вираження:

 

x == x.clone()

 

повинне бути правдивим, як і вираження:

 

x.clone().getClass() == x.getClass()

 

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

 

Рядки

String це клас, який використовується в Java для подання рядків. Він має властивість незмінюваності. Після того як створений екземпляр цього класу, його вміст уже не може бути модифіковано.

Існує багато способів створити об'єкт String. Найбільше простій, якщо вміст рядка відомо на етапі компіляції, - написати текст у лапках:

 

String abc = "abc";

 

Можна використовувати й різні варіанти конструктора. Найбільш простий з них - конструктор, що одержує на вході строковий літерал.

 

String s = new String("immutable");

 

В Java для рядків визначений оператор +. При використанні цього оператора виробляється конкатенація рядків. У класі String також визначений метод:

 

public String concat(String s);

 

Він повертає новий об'єкт-рядок, доповнений праворуч рядком s.

Як ми вже відзначали, рядок складається із двобайтних Unicode-символів. Однак, у багатьох випадках потрібно працювати з рядком як з набором байтів (введення/виведення, робота з базою даних і т.д.). Перетворення рядка в послідовність байтів реалізовується наступними методами:

- byte[] getBytes() - повертає послідовність байтів у кодуванні, прийнятої за замовчуванням (як правило, залежить від настроювань операційної системи);

- byte[] getBytes(String encoding) - повертає послідовність байтів у зазначеному кодуванні encoding.

Для виконання зворотної операції (перетворення байтів у рядок) необхідно сконструювати новий об'єкт-рядок за допомогою наступних методів:

- String(byte[] bytes) - створює рядок з послідовності байтів у кодуванні, прийнятої за замовчуванням;

- String(byte[] bytes, String enc) - створює рядок з послідовності байтів у зазначеному кодуванні.


<== попередня лекція | наступна лекція ==>
Тема 6 Масиви. Робота з рядками. Виключення. Пакет java.lang | StringBuffer


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн