Дано:
public class Triangle {
double area;
int height;
int length;
public static void main(String[] args) {
int x = 0;
Triangle[] ta = new Triangle[4];
while (x < 4) {
ta[x] = new Triangle();
ta[x].height = (x + 1) * 2;
ta[x].length = x + 4;
ta[x].setArea();
System.out.print("triangle " + x +
", area");
System.out.println(" = " + ta[x].area);
x = x + 1;
}
int y = x;
x = 27;
Triangle t5 = ta[2];
ta[2].area = 343;
System.out.print("y = " + y);
System.out.println(", t5 area = " +
t5.area);
}
void setArea() {
area = (height * length) / 2;
}
}
Интересуют вот эти две строки:
Triangle t5 = ta[2];
ta[2].area = 343;
Из этого следует, что переменная t5 типа Triangle и переменная ta[2] ссылаются на один и тот же объект Triangle. Программа выполняется сверху вниз, строка с присвоением 343 идёт ниже. Однако при присвоении ta[2].area = 343 автоматически меняется и значение t5, хотя она выше (я проверил через debug). Такое правило работает только в данном случае объектов и ссылок на них?
И ещё вопрос. Например, если бы мы имели:
int x,y;
х=6;
x=y;
y=7;
То значение x чему было бы равно?
И по-другому:
int x,y;
х=6;
y=x;
y=7;
В данном случае x так и остаётся равным 6, верно?