Page 38 - 4657
P. 38
У тому випадку, коли age - не String, а змінна, скажемо,
типу int, у цьому рядку коду укладеноі ще більше магії
транслятора. Ціле значення змінної int передається сполученому
методу append класу StringBuffer, що перетворить його в
текстовий вид і додає в кінець рядка, що міститься в об'єкті. Вам
потрібно бути уважним при спільному використанні цілих
виражень і злиття рядків, у противному випадку результат може
вийти зовсім не той, котрий ви чекали. Гляньте на наступну
рядок:
String s = "four: " + 2 + 2;
Бути може, ви сподіваєтеся, що в s буде записаний рядок
«four: 4»? Не угадали - з вами зіграла злий жарт послідовність
виконання операторів. Так що в результаті виходить "four: 22".
Для того, щоб першим виконалося додавання цілих чисел,
потрібно використовувати дужки :
String s = "four: " + (2 + 2);
Перетворення рядків
У кожнім класі String є метод toString - або своя власна
реалізація, або варіант за замовчуванням, наслідуваний від класу
Object. Клас у нашому черговому прикладі заміщає
наслідуваний метод toStrring своїм власної, що дозволяє йому
виводити значення змінних об'єкта.
class Point {
int х, у;
Point(int x, int у) {
this.x = х;
this.у = у;
}
public String toString() {
return "Point[" + x + ", " + у + "]";
} }
class toStringDemo {
public static void main(String args[]) {
Point p = new Point(10, 20);
36