Полиморфизм. Object класы. Құрылғылар.  Finalize әдісі. Reverse engineering – операторымен  UML-диаграммалары 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Полиморфизм. Object класы. Құрылғылар.  Finalize әдісі. Reverse engineering – операторымен  UML-диаграммалары

Жолдармен жұмыс істеу

Мәліметтерді өңдеу кезінде мәтінмен жұмыс істеу керек болады. Мәтіндік жолдар Java тілінде объект болып есептелінеді. Олар класс данасы string немесе класс stringBuffer арқылы беріледі.

Кластың string объектісінде өзгермейтін ұзындықтағы жол тұрақтылары сақталады. stringBuffer класының объектісіндегі жол ұзындығын өзгертуге, яғни ауыстыруға, қосуға, өшіруге болады. Көптеген жағдайларда string түріндегі жол ұзындығын өзгерту кезінде Java компиляторы оны stringBuffer түріне ауыстырады, ұзындығын өзгертеді қайтадан string түріне келтіреді. Мысалы

String s = "Бұл" + " бір " + "жол";

компилятор былай орындайды:

String s = new StringBuffer().append("Бұл").append(" бір ")

.append("жол").toString();

 

Дәріс №8

Полиморфизм. Object класы. Құрылғылар.  Finalize әдісі. Reverse engineering – операторымен  UML-диаграммалары

Түрлерді келтіру

Арифметикалық операциялардың нәтижесі int түрінде болады. Егер бір операнд long түрінде болса ғана нәтиже long түрінде болады.

Арифметикалық операцияларды орындау алдында түрлер byte , short , char жоғарылайды (promotion). Олар int түріне түрленеді, бірақ, егер бір операнд long түрінде болса, онда long түріне түрленеді. Бірақ бұдан санның сандық мәні өзгермейді.

Бұл ереже кейде күтпеген нәтижені беруі мүмкін. 

Листинг 3.Айнымалыларды дұрыс анықтамау

class InvalidDef{

public static void main (String[] args) {

byte b1 = 50, b2 = -99;

short k = b1 + b2; // Дұрыс емес! '

System.out.println("k=" + k);

}

}

Бұл хабарлама InvalidDef.java файылының 4 жолында дәлдік дұрыс емес екенін көрсетеді (possible loss of precision). Сосын табылған (found) және қажет (required) түрлері жолға шығарылады. Содан кейін табылған қателер саны шығады (1 error).

Сурет 3.  Қате туралы компилятор хабарламасы

Бұл жағдайды түрді нақты көрсету керек, яғни int түрінің қызмет етуі (narrowing) short түріне дейін болады. Анықтау

short k = (short)(b1 + b2) ;

дұрыс болады.

Қызмет ету кезінде жоғарғы дәрежедегі биттер алынып тасталады. Мысалы, анықтау

byte b = (byte) 300;

b айнымалысына 44 мәнін береді. Шынында да 300 саны екілік санау жүйесінде 100101100 тең болады, жоғарғы биттерді алып тастасақ 00101100 саны алынады, ал бұл 44 санын береді.

Егер int немесе long түрлерінде нәтиже өэ аумағынан асып кетсе, онда автоматты түрде берілген аумақ көлеміндегі модулге түрленеді, есептеу жалғасады, толып кету алынып тасталмайды.



Поделиться:


Последнее изменение этой страницы: 2024-07-06; просмотров: 53; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.)