Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

Реклама :


вес пеноплекс
Практикующий врач психиатр - психиатр. Скорая психиатрическая помощь.

Простейший пример объявления final-переменной:

final double pi=3.1415;

Примитивные и ссылочные типы данных

Теперь на примере переменных можно проиллюстрировать различие Ёежду примитивными и ссылочными типами данных. Рассмотрим при-|ер, когда объявляются две переменные одного типа, приравниваются руг другу, а затем значение одной их них изменяется. Что произойдет со ■торой переменной?

Возьмем простой тип int:

int а=5; // объявляем первую переменную и инициализируем ее int b=a; // объявляем вторую переменную и приравниваем ее к первой а=3; // меняем значение первой print(b); // проверяем значение второй

Здесь и далее мы считаем, что функция print(...) позволяет нам неко­торым (неважно, каким именно) способом узнать значение ее аргумента (как правило, для этого используют функцию из стандартной библиотеки %stem.out.println(...), которая выводит значение на системную консоль).

В результате мы увидим, что значение переменной b не изменилось, Оно осталось равным 5. Это означает, что переменные простого типа хра­нят непосредственно свои значения и при приравнивании двух перемен­ных происходит копирование данного значения. Чтобы еще раз подчерк­нуть эту особенность, приведем еще один пример:

byte b=3; int a=b;

В данном примере происходит преобразование типов (оно подробно рассматривается в соответствующей лекции). Для нас сейчас важно кон­статировать, что переменная b хранит значение 3 типа byte, а переменная а - значение 3 типа int. Это два разных значения, и во второй строке при присваивании произошло копирование.

Теперь рассмотрим ссылочный тип данных. Переменные таких ти­пов всегда хранят ссылки на некоторые объекты. Рассмотрим для приме­ра класс, описывающий точку на координатной плоскости с целочислен­ными координатами. Описание класса — это отдельная тема, но в нашем простейшем случае оно тривиально:

class Point { intx, у;

}

Теперь составим пример, аналогичный приведенному выше для int-переменных, считая, что выражение new Point(3,5) создает новый объ­ект-точку с координатами (3,5).

Point р1 = new Point(3,5);

Point р2=р1;

р1.х=7;

print(p2.x);

В третьей строке мы изменили горизонтальную координату точки, на которую ссылалась переменная р1, и теперь нас интересует, как это сказалось на точке, на которую ссылается переменная р2