В иерархии класса,если метод в подклассе имеет такое же имя и сигнатуру как и метод в его супер классе-то метод переопределяет метод в субклассе.когда переопределенный метод вызываеться в подклассе он будет всегда обращаться к версии этого метода определенной подклассом.версия метода определёного супер класссом будет скрыта
Скрытие полей и доступ к 19 наслед.членам
Переопеделять поля класса нельзя.Тут поле субкласса при этом скрываеться полем порождёного класса.это сделано для безопасного
Добавления в порожденный класс.
Скрытое поле не исчезает к нему обратиться можно спомощю ссылки
Хоть подкласс включает все элементы своего супуркласса,он не может обращаться к тем элементам суперкласса,которые были обявлены как private.
СУПЕР 20
Когда подклассвызывает супер,он вызывает конструктор своего непосредственого суперкласса.СУПЕР()всегла обращаеться к своим непосредственному суперклассу вызывающего класса.это справедливо даже в многоуровневой иерархии.кроме того СУПЕР()всегда должен быть первым оператором,виполняемым внутри конструктора подкласса.
Используеться в 2 формах:
СУПЕР(вход.парам):
СУПЕР.мембер-переменой экземпляра или методом:как ссылка(зис)только на суперкласс.применяеться когда члены скрыты
Переобразование типов 21
Есть совместимы(с байт в стринг)Автоматическое преобразование(условия1.типы совместины,2.целовой тип больше чем исходный) и несовместимы типы(инт в байт)приведение несовместимых типов: сужающим преобразованием (косаеться розрядности) приведение типов или явное преобразование (через ключ слово валуе)
String S=br.readLine();
double u= Double.valueOf(S). doubleValue();
int I;
double u= Double.valueOf(I). doubleValue();
S.toCharArray();
Проэктирование класса 26
Класс Object 24
Стандартный класс Object - суперкласс всех других классов. Переменная типа Object может содержать ссылку на любой объект, который является экземпляром класса или массив. Все классы и массивы наследуют методы класса Object
=Метод getClass возвращает объект Class, который представляет класс объекта. Объект Class существует для каждого ссылочного типа. Это может использоваться, например, для того чтобы обнаружить полностью квалифицированное имя класса, его членов, его непосредственный суперкласс, и любые интерфейсы, которые им реализованы. Метод класса, который объявляется со словом synchronized синхронизируется на замке, связанном с объектом Class данного класса.
=Метод toString возвращает строковое представление объекта.
=Методы equals и hashCode объявлены специально для перемешанных таблиц таких как java.util.Hashtable. Метод equals определяет понятие равенства объекта, которое основывается на сравнении значения, а не ссылки.
=Метод clone используется для создания дубликата объекта.
=Методы wait, notify, и notifyAll используются в параллельном программировании, т.е. при использовании потоков=Метод finalize выполняется только до того как объект уничтожается
Интерфейс 27
Описываетто как обьект взаемодействует с другими обьектам,задаеться,определяеться методы,сообщения,и.т
интерфейс это чисто абстрактный класс который содержит абстр.метод.не содержит тел методов и отличается от абстарк.класса:мнжественное наследование,реализуеться полностю.
Able –суфикс возможность
Comparable – сравнение обьектов 2 классов
Runable –выполнение кода вне зависимости от потока
Serialirable преобразование в байт потока с целью передачи по сети
Объявление интерфейса 28
Объявление интерфейса определяет новый ссылочный тип:
Interface Declaration{…} Каждое объявление поля в теле интерфейса поумолчанию public, static и final.Члены интерфейса - это члены, которые унаследованы от прямого суперинтерфейса и члены, которые объявлены в интерфейсе.
Интерфейс наследует из интерфейсов расширения, все члены этих интерфейсов, кроме полей, которые скрываются и методов которые игнорируются.
Члены интерфейсного типа - это поля и методы. Членами интерфейсного типа могут быть:
· Члены, унаследованные от любого прямого суперинтерфейса
· Члены, объявленные в теле интерфейса
Расширение интерфейса 29 Расширение интерфейса может наследовать другой при помощи ключ.сл. ектендс.синтакис тот же самый,что при наследовании классов.когда класс наследует другой интерф.первий должен обеспечить реализацию для всех методов,определенных в цепочке наследования интерф.Наследование.
Интерфейс может иметь два или более поля с одинаковыми простыми именами, если они объявлены в различных интерфейсах и унаследованы. Попытка обратиться к какому-нибудь полю по его простому имени приводит к ошибке времени компиляции
переопределение методов нет симантической ошибки,только синтаксичекая.Класс который реализует интерф имеет олько одну реализацию интерфСокрытие константПерегрузка 30
Если два метода интерфейса (или оба объявлены в одном и том же интерфейсе, или оба наследованы интерфейсом, или один объявлен и один унаследован) имеют одно и то же имя, но различные сигнатуры, то имя метода, как говорят, является игнорированным. Это не вызывает никаких трудностей и никогда не приводит к ошибке времени компиляции. Типы возвращаемых значений и предложения trows двух методов с одинаковым именем и разнымисигнатурами не имеют друг к другу никакого отношения.
Реализация интерф 31 Для реализации в определени класса включ ключ.сл. ИМПЛЕМЕНТС и затем создают метоы,определёные в инерф.Модиф класс имя[extends суперкласс][implements interface [..,interface…]]{Интерфеисы описывают контракты в чистом контрактом виде.они не сдержат намеков на к той или иной реализации по эому в каждом новом классе ин-сы реализуються по новому Пустые интерф 32 Не содержат никаких констант Статычни вкладени класы та инерфейсы 33 В ява возмоны вложенные класы и интерфейсы<имя внушн.кл.>.<имя влож. кл.(интерфейса)> Внутренные класы 34 Они динамические,они всегда связаны с энземпляром класа.Не статичние поля и методы-атребуты обекта а не класа.Обращения внешнегокласа к полям внутренего-только через обект. <имя внушн.кл.>.<имя влож. кл.(интерфейса)>.this.имя Локальный внут.клас 38 Ето клас обявелен не втутни класа а внутри одногоиз метода какогото класа.Энгемпляр обекта внутренных локальных класов можно передать как ссылки методам и возвращать из методов. Они только FINAL Анонимни лок.класи 39 При описании лок.класов нельзя:1.использувать имплементс и екстендс 2.создавать обекти –потому что нет конструктораАсинхронные исключения 42
Большинство исключений в Ява происходит синхронизированно, как результат действия потока, в котором они случаются и в месте Ява-программы, которое определяется для возможного результата в таком исключении. Асинхронное исключение, в противоположность, есть исключение, которое может потенциально происходить в любом месте при выполнении Ява- программы.
Асинхронные исключения в языке Ява встречаются очень редко. Они происходят только в результате:
· Вызова stop методов класса Thread или ThreadGroup
· Внутренней ошибки(InternalError) в виртуальной машине языка Ява
Stop методы могут быть вызваны одним потоком для того, чтобы воздействовать на другой поток или все потоки в указанной группе потоков. Они - асинхронные, потому что могут происходить в любой момент при выполнении другого потока или потоков. InternalError рассматривается асинхронно так, чтобы оно могло обрабатываться используя одинаковый механизм, который вызывает stop метод, как будет описано.
Абстракция 1
Существенным элементом объектно-ориентированного программирования является абстракция. Человечество управляет сложностью через абстракцию.
Мощным способом управления абстракцией является применение иерархических классификаций. Они позволяют расслоить семантику сложных систем, разбивая их на более управляемые части.
Наследование
Наследование есть процесс, с помощью которого один объект приобретает свойства другого объекта. Оно важно потому, что поддерживает концепцию иерархической классификации. Без применения классификаций каждый объект нуждался бы в явном определении всех своих характеристик. При использовании наследования объект нуждается в определении только тех качеств, которые делают его уникальным в собственном классе. Он может наследовать общие свойства от своего родителя. Поэтому именно механизм наследования дает возможность одному объекту быть специфическим экземпляром более общего случая.
Полиморфизм
Полиморфизм (от греч. — "имеющий много форм") — свойство, которое позволяет использовать один интерфейс для общего класса действий. Специфическое действие определяется точной природой ситуации. Вследствие полиморфизма в языке Java можно специфицировать общий для всех типов данных набор стековых пбдпрограмм, использующих одно и то же имя.
Инкапсуляция
Инкапсуляция — это механизм, который связывает код вместе с обрабатываемыми им данными и сохраняет их в безопасности как от внешнего влияния, так от ошибочного использования. Можно представить инкапсуляцию как защитную оболочку, которая предохраняет код и данные от произвольного доступа из других кодов, определенных вне этой оболочки. Доступ к коду и данным внутри оболочки строго контролируется через хорошо определенный интерфейс