March 5th, 2009
« Програмування на мові Java Робота з рядками |
Програмування на мові Java Обробка виключень »
Автоматичне перетворення типу іноді може виявитися причиною несподіваних повідомлень транслятора про помилки. Наприклад, показаний нижче код, хоч і виглядає цілком коректним, приводить до повідомлення про помилку на фазі трансляції. У нім ми намагаємося записати значення 50* 2, яке повинне чудово уміщатися в тип byte, в байтову змінну.
Але із-за автоматичного перетворення типу результату в int ми отримуємо повідомлення про помилку від транслятора-ведь при занесенні int в byte може відбутися втрата точності.
byte b = 50; b = b* 2; ^ Incompatible type for =. Explicit cast needed to convert int to byte.
(Несумісний тип для =. Необхідне явне перетворення int в byte)
Виправлений текст :
byte b = 50; b = (byte) (b* 2);
що приводить до занесення в b правильного значення 100.
Якщо у виразі використовуються змінні типів byte, short і int, то щоб уникнути переповнювання тип всього виразу автоматично підвищується до int. Якщо ж у виразі тип хоч би однієї переменной-long, то і тип всього виразу теж підвищується до long. He забувайте, що всі цілі літерали, в кінці яких не коштує символ L (або 1), мають тип int.
Якщо вираз містить операнди типу float, то і тип всього виразу автоматично підвищується до float. Якщо ж хоч би один з операндів має тип double, то тип всього виразу підвищується до double. За умовчанням Java розглядає всі літерали з плаваючою крапкою, як що мають тип double.
Приведена нижче програма показує, як підвищується тип кожної величини у виразі для досягнення відповідності з другим операндом кожного бінарного оператора.
class Promote { public static void main (String args []) { byte b = 42; char з = ‘a’; short s = 1024; int i = 50000; float f = 5.67f; double d =.1234; double result = (f* b) + (i/ з)-(d* s); System. out.
println ((f* b)+ “+ “+ (i / з)+ “-” + (d* s)); System. out. println (”result = “+ result); } }
Pages: 1 2 3 4 5 6 7 8 9 10 11
Tags:
вираз,
змінна,
значення,
масив,
результат,
тип,
число
Схожі записи
- Java (24.02.2009)
...
Гідність подібного способу виконання програм - в повній незалежності байт-кода від ОС і устаткування, що дозволяє виконувати Java-додатки на будь-якому пристрої, який підтримує віртуальну машину. Іншою важливою особливістю технології Java є гнучка система безпеки завдяки тому, що виконання програми повністю контролюється віртуальною машиною.
Будь-які операції, які перевищують встановлені повноваження програми (наприклад, спроба несанкціонованого ...
- Програмування на мові Java Утиліти (02.03.2009)
...
У цього класу є методи доступу до вмісту об'єкту, які повертають (можливо закруглене) значення об'єкту у вигляді значення кожного з примітивних типів:
doubleValue() повертає вміст об'єкту у вигляді значення типу double.
floatValue() повертає значення типу float.
intValue() повертає значення типу int.
longValue() повертає значення типу long.
Double ...
- Практична мова для практичних програмістів (10.04.2009)
...
За плечима у справ трансляцій майстра Брайта -- безпосередня участь в розробці таких програмних продуктів, як: Northwest Software C, Data-light C, Zorland C, Zortech C++ (між іншим, один з перших "рідних" компіляторів з C++), Symantec C++ і Digital Mars C++; компілятор з ABEL (Ad-vanced Boolean Expression Language, призначений, як і відоміший VHDL, для формального опису ...
- Порівняння C Sharp і Java (14.04.2009)
...
У реальності складальники сміття оптимізують виконання так, щоб забезпечити прийнятну витрату пам'яті при мінімальному уповільненні роботи програм.
І в Java, і в C# є сильні і слабкі посилання на об'єкти. Обидві мови підтримують методи-фіналізатори. Із-за невизначеності моменту видалення об'єкту фіналізатори не можуть використовуватися для звільнення системних ресурсів, зайнятих об'єктом, що вимушує створювати додаткові методи ...
- Програмування на мові Java Введення в мову Java (12.03.2009)
... println ("Hello World"); } }
Для того, щоб попрацювати з приведеними в книзі прикладами вам потрібно отримати по мережі з Sun Microsystems і встановити Java Developers Kit-пакет для розробки Java-додатків (http://java.sun.com/products/jdk).
Мова Java вимагає, щоб весь програмний код був поміщений усередині пойменованих класів. Приведений вище текст прикладу треба записати у файл HelloWorld.java. Обов'язково ...
Категория:
програмування |
Комментарии