„Здрасти, Амиго!“

„Здравей, Ели!“

„Днес съм в добро настроение, така че искам да ви кажа нещо интересно. Ще започна с това How системата от типове на Java се справя с примитивните типове.“

" В Java всеки обект и всяка променлива има свой собствен предварително зададен непроменим тип. Типът на примитивната променлива се определя, когато програмата се компorра, но типът на обекта се определя, когато се създава. Типът на новосъздадения обект и/or променлива остава непроменен през целия си живот. Ето един пример:"

Java code Описание
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b– представлява целочислено деление. Отговорът е две. Остатъкът от операцията за деление просто се игнорира.
int a = 13;
int b = 5;
int d = a % b; // d == 3
dще съхрани остатъка от целочисленото деление на aна b. Остатъкът е 3.

„Има няколко интересни нюанса, които трябва да запомните.“

„Първо, референтната променлива не винаги сочи към стойност, която има същия тип като нея.“

„Второ, когато променливи с два различни типа си взаимодействат, те първо трябва да бъдат преобразувани в един и същ тип.“

"Ами делението? Ако разделим 1 на 3, ще получим 0,333(3). Нали?"

„Не, това не е правилно. Когато разделим две цели числа, резултатът също е цяло число. Ако разделите 5 на 3, отговорът ще бъде 1 с две като остатък. И остатъкът ще бъде игнориран.“

„Ако разделим 1 на 3, ще получим 0 (с напомняне 1, което ще бъде игнорирано).“

„Но Howво да направя, ако искам да получа 0,333?“

„В Java, преди да извършите деление, е най-добре да преобразувате число в тип с плаваща запетая (дробна част), като умножите по число с плаваща запетая едно (1.0).“

Java code Описание
int a = 1/3;
aще бъде 0
double d = 1/3;
 d ще бъде 0,0
double d = 1.0 / 3;
dще бъде 0,333(3)
double d = 1 / 3.0;
dще бъде 0,333(3)
int a = 5, b = 7;
double d = (a * 1.0) / b;
dще бъде 0,7142857142857143

"Схванах го."