При каждом создании экземпляра класса мы создаем объект, который содержит собственную копию каждой переменной экземпляра, определенной
классом. Таким образом, каждый объект класса Box будет содержать собственные копии переменных экземпляра width, height и depth. Для доступа к этим переменным применяется оператор точки (.). Этот оператор связывает имя объекта с именем переменной экземпляра.
Скачать исходники для статьи можно ниже
Например, чтобы присвоить переменной width объекта mybox значение 100, нужно было бы использовать следующий оператор.
mybox.width = 100;
Этот оператор указывает компилятору, что копии переменной width, хранящейся внутри объекта mybox, нужно присвоить значение 100. В общем случае точечный оператор используют для доступа как к переменным экземпляра, так и к методам внутри объекта.
Ниже приведена полная программа, в которой используется класс Box.
class Box { double width; double height; double depth; } class BoxDemo { public static void main(String args[]) { Box mybox = new Box(); double vol; // присваивание значений переменным экземпляра mybox mybox.width = 10; mybox.height = 20; mybox.depth = 15; // вычисление объема параллелепипеда vol = mybox.width * mybox.height * mybox.depth; System.out.println("Объем равен " + vol); } }
В результате будет получен следующий вывод:
Объем равен 3 000.0
Как было сказано ранее, каждый объект содержит собственные копии переменных экземпляра. Это означает, что при наличии двух объектов класса Box каждый из них будет содержать собственные копии переменных depth, width и height.
Важно понимать, что изменения переменных экземпляра одного объекта не влияют на переменные экземпляра другого. Например, в следующей программе объявлены два объекта класса Box.
class Box { double width; double height; double depth; } class BoxDemo2 { public static void main(String args[]) { Box myboxl = new Box(); Box mybox2 = new Box(); double vol; myboxl.width = 10; myboxl.height = 20; myboxl.depth = 15; mybox2.width = 3; mybox2.height = 6; mybox2.depth = 9 ; vol = myboxl.width * myboxl.height * myboxl.depth; System.out.println("Объем равен " + vol); vol = mybox2.width * mybox2.height * mybox2.depth; System.out.println("Volume is " + vol); } }
Эта программа создает следующий вывод:
Объем равен 3 000.0
Объем равен 162.0
Как видите, данные объекта myboxl полностью изолированы от данных, содержащихся в объекте mybox2.