Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЕлизавета Вакульская
1 Java: интерфейсы, наследование, обработка исключительных ситуаций Вашенков Олег Евгеньевич
2 Интерфейсы Содержат только объявления методов: public interface Instrument{ public void play(); public String what(); public void adjust(); }
3 Реализация интерфейсов
4 Наследование Файл: Instrument.java public interface Instrument{ … } Файл: Wind.java public class Wind implements Instrument{ public void play(){ System.out.println( Wind.play() ); } public String what(){ return Wind; } public void adjust(){} }
5 Обращение к классу Непосредственное обращение: Wind w = new Wind(); w.play(); Обращение по интерфейсу: Instrument inst = new Wind(); Inst.play(); //Вывод: Wind.play() Ошибка: Wind w = new Instrument(); 1)Нельзя создавать экземпляр интерфейса 2)Нельзя инициировать ссылку экземпляром класса, находящегося выше по иерархии
6 Исключительные ситуации Исключения – экземпляры классов, реализующих интерфейс java.lang.Throwable или наследованных от класса java.lang.Exception Источник исключения: void testException() throws Exception{ Object o; if( o == null ) throw new NullPointerException(); } Обработчик исключения: try{ testException(); }catch( Exception exc ){ exc.printStackTrace(); }
7 Исключительные ситуации Собственные типы исключительных ситуаций public class CustomException extends Exception{ Object source; public CustomException( Object source ){ this.source = source; } public String getMessage(){ return Exception at + source + processing.; }
8 Источники исключений Деление на ноль: int a = 1, b = 0; int c = a / b; Выполнение будет прервано с исключением java.lang.ArithmeticException Обращение к неинициализированному объекту: Object o; o.equals(true); Выполнение будет прервано с исключением java.lang.NullPointerException
9 Явные источники исключений public void method( String arg ) throws Exception{ if( arg == null ) throws new NullPointerException(); else if( arg.length() != 10 ) throws new IllegalArgumentException( Argument is too small ); }
10 Обработка исключений Блок try/catch/finally FileInputStream fis = null; try{ fis = new FileInputStream( c:\\text.txt ); fis.read( buffer ); }catch( Exception exc ){ exc.printStackTrace(); }finally{ //Если is == null, будет вызвано исключение NullPointerException //которое должно быть обработано в этом же методе или выше is.close(); }
11 Обработка исключений Объявление ключевого слова throws public void doAction() throws Exception{ FileInputStream fis = null; try{ fis = new FileInputStream( c:\\text.txt ); … }finally{ try{ is.close(); }catch( Exception exc ){} } Обработкой ошибки займется метод, вызвавший doAction() или выше по стеку вызовов
12 Структурированная обработка try{ doSomeAction( arg ); }catch( NullPointerException exc ){ System.out.println( exc ); }catch( IllegalArgumentException exc ){ System.out.println( exc ); }catch( ConnectException exc ){ System.out.println( exc ); }finally{ releaseResources(); } Таким образом, возможна реализация своего набора исключений, инкапсулирующего проблемно-ориентированную информацию об исключениях
13 Задание Реализовать иерархию классов геометрических примитивов с единым интерфейсом Shape. Иерархия должна описывать объекты: круг, прямоугольник, квадрат, равносторонний треугольник. Классы содержат поля с параметрами фигур: Круг: радиус; Прямоугольник: длины сторон; Квадрат: длина одной стороны; Треугольник: длина основания и высота. Инициализацию предлагается сделать в конструкторе каждого класса. Интерфейс Shape должен содержать один метод: float getArea(); Возвращающий площадь фигуры. Метод требуется реализовать в подклассах.
14 Диаграмма классов Диаграмма классов: Демонстрация работы: создать класс Main со статическим методом main(). В методе реализовать заполнение массива из 100 примитивов поочередно (круг, прямоугольник, треугольник, квадрат). Каждый пятый элемент пропускать. После заполнения массива, реализовать вывод на консоль площади Каждого примитива в массиве. Реализовать обработку исключительных ситуаций.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.