
- •2. Понятие и определение класса.
- •3. Объявление объектов и операция new
- •4. Модификаторы класса.
- •5. Использование атрибутов доступа к элементам класса (внутри класса)
- •6. Методы класса. Метод main(). Конструкторы класса.
- •7. Параметризация методов
- •8. Наследование
- •9. Модификаторы доступа при наследовании
- •10. Перегрузка и переопределение методов
- •11. Использов ключевого слова final
- •12. Понятие и использование абстрактных классов, абстрактных методов.
- •15. Примеры применения интерфейсов.
- •16. Потоки ввода и вывода информации
- •Классы символьных потоков
- •19.Работа с файлами
- •24. Обработки исключительнх ситуаций. Основные принципы обработки исключений..
- •25. Использование операторов try-catch-finally, throw и throws.Конструкция try-catch
7. Параметризация методов
Аргументом метода main() является массив строк. Он может заполняться дополнительными параметрами, которые указываются при вызове метода. Пример демонстрирует вывод в консоль параметров, переданных в метод
main. Для запуска примера необходимо передать сами параметры, например
java test.first.Test HelloWorld
package test.first; public class Test {
public static void main(String[] args) {
for (int i=0; i<args.length; i++) {
System.out.print(args[i]+" "); }
System.out.println(); } }
Результат работы программы: HelloWorld
8. Наследование
Наследование позволяет создавать иерархические классификации.
Используя наследование, можно создать главный класс, который определяет свойства, общие для набора связанных элементов.
Класс, который унаследован, называется суперклассом (superclass).
Класс, который выполняет наследование, называется подклассом (subclass) — это специализированная версия суперкласса. Он наследует все переменные экземпляра и методы, определенные суперклассом, и прибавляет свои собственные уникальные элементы.
Чтобы наследовать класс, нужно просто включить определение одного класса в другое, используя ключевое слово extends.
В java отсутствует множественное наследование
9. Модификаторы доступа при наследовании
При наследовании все поля, методы базового класса переходят (наследуются) др. классом, но доступ к ним (базовым) может быть (public, friendly, protected), а может и не быть (private). Доступ из производного класса к полям и методам базового класса определяет специфика доступа к полю/методу , который указан в базовом классе.
10. Перегрузка и переопределение методов
Перегрузка работает в рамках одного класса, переопределение – при наследовании.
Перегрузка. Два метода называются перегруженными, если они имеют одинаковое название, но параметры, которые они принимают, отличаются либо по типу, либо по колву. В этом смысл полиморфизма.
Переопределение. При разработке иерархии классов часто возникает необходимость расширить возможности метода, наследуемого из родительского класса. В этом случае в производном Н разработать свой метод родительского класса. Например, если в произв классе метод с тем же именем и типом возвращаемого значения будет иметь разное колво параметров, то будет реализована перегрузка метода.
11. Использов ключевого слова final
Ключевое слово final имеет три применения. Первое — его можно использовать для создания эквивалента именованной константы. Два других применения final связаны с наследованием.
Чтобы отменить переопределение метода, укажите модификатор final в начале его объявления. Методы, объявленные как final, не могут переопределяться.
class A {
final void meth() {
System.out.println("Это метод final.");
} }
class В extends A {
void meth() { // ОШИБКА! Нельзя переопределять.
System.out.println("Ошибка!");
} }
Поскольку meth о объявлен как final, он не может быть переопределен в классе B. Если вы попытаетесь сделать это, то получите ошибку во время компиляции.
Иногда нужно разорвать наследственную связь классов (отменить наследование одного класса другим). Чтобы сделать это, предварите объявление класса ключевым словом final, что позволит неявно объявить и все его методы. Недопустимо объявлять класс одновременно как abstract и final.
final class A { // ...}
// Следующий класс незаконный.
class В extends А { //ОШИБКА! В не может быть подклассом А
// .. . }
Комментарий здесь означает, что в не может наследовать А, т.к. А объявлен как final.