Программирование на 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. Введение в сетевые протоколы

ссылке ни тип объекта, ни значения его полей не учитываются, true возвращает­ся только в том случае, если обе ссылки указывают на один и тот же объект.

Point p1=new Point(2,3);

Point p2=p1;

Point p3=new Point(2,3);

print(p1==p2);

print(p1==p3);

Результатом будет:

true false

Первое сравнение оказалось истинным, так как переменная р2 ссы­лается на тот же объект, что и р1. Второе же сравнение ложно, несмотря на то, что переменная рЗ ссылается на объект-точку с точно такими же координатами. Однако это другой объект, который был порожден другим выражением new.

Если один из аргументов оператора = равен null, а другой - нет, то значение такого выражения будет false. Если же оба операнда null, то ре­зультат будет true.

Для корректного сравнения по значению существует специальный метод equals, который будет рассмотрен позже. Например, строки надо сравнивать следующим образом:

String s = "abc"; s=s+1;

print(s.equals("abc1 "));

Операция с условием ? : работает как обычно и может принимать второй и третий аргументы, если они оба одновременно ссылочного типа. Результат такого оператора также будет иметь объектный тип.

Как и простые типы, ссылочные величины можно складывать со строкой. Если ссылка равна null, то к строке добавляется текст "null". Если Же ссылка указывает на объект, то у него вызывается специальный метод (он будет рассмотрен ниже, его имя toStringO) и текст, который он вер­нет, будет добавлен к строке.

Класс Object

В Java множественное наследование отсутствует. Каждый класс Может иметь только одного родителя. Таким образом, мы можем про­следить цепочку наследования от любого класса, поднимаясь все выше. Существует класс, на котором такая цепочка всегда заканчивается, это класс Object. Именно от него наследуются все классы, в объявлении которых явно не указан другой родительский класс. А значит, любой класс напрямую, или через своих родителей, является наследником Object. Отсюда следует, что методы этого класса есть у любого объекта (поля в Object отсутствуют), а потому они представляют особенный интерес.

Рассмотрим основные из них.

getClassf)

Этот метод возвращает объект класса Class, который описывает класс, от которого был порожден этот объект. Класс Class будет рас­смотрен ниже. У него есть метод getNameO, возвращающий имя класса:

String s = "abc"; Class cl=s.getClass(); print(cl.getNameO);