Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции Java / 01. Основные понятия и принципы ООП. Язык программирования Java.pptx

.pdf
Скачиваний:
163
Добавлен:
16.03.2015
Размер:
210.31 Кб
Скачать

Методы класса

nПо сути являются функциями: обладают именем, параметрами и возвращаемым значением

nОбъявление метода:

[модификаторы] <тип> <сигнатура> [throws исключения] {<тело>}

n Тело метода состоит из набора инструкций

class Primes {

static int nextPrime(int current) { <Вычисление простого числа в теле метода>

}

}

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

31

Модификаторы методов класса

nМодификаторы доступа

nabstract

абстрактность метода (метод объявляется, но тело при этом не описывается)

n static

статичность метода (метод принадлежит контексту класса, а не объекта)

n final

завершенность метода (метод не может быть переопределен при наследовании)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

32

Модификаторы методов класса

n synchronized

синхронизированность метода (особенности вызова метода в многопоточных приложениях)

n native

«нативность» метода (тело метода не описывается, при вызове вызывается метод из native-библиотеки)

n strictfp

повышенные требования к операциям с плавающей точкой (результаты операций одинаковые на различных платформах)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

33

Особенности методов

n Для нестатических методов вызов через ссылку на объект или в контексте объекта

reference.method(); methodReturningReference().method();

n Для статических методов вызов через имя типа, через ссылку на объект или в контексте класса

ClassName.staticMethod();

reference.staticMethod(); staticMethodReturningReference().method();

nНаличие круглых скобок при вызове обязательно, т.к. они являются оператором вызова метода

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

34

Особенности методов

nНа время выполнения метода управление передается в тело метода

nВозвращается одно значение

return someValue;

nАргументы передаются по значению, т.е. значения параметров копируются в стек:

для примитивных типов копируются сами значения

для ссылочных типов копируется значение ссылки

nПерегруженными являются методы с одинаковыми именами и различными по типу списками параметров

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

35

Что можно делать в методе?

n Можно обращаться к данным

Параметры метода

Локальные переменные

Поля объекта

Статические поля классов

nМожно выполнять операции

nМожно объявлять переменные

nМожно создавать объекты

nМожно вызывать методы объектов и классов

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

36

Создание объектов

nОбъявление переменной и создание объекта – различные операции

nИспользуется оператор new, он возвращает ссылку на объект

nПосле оператора указывается имя конструктора и его параметры

Body sun;

sun = new Body(); sun.idNum = Body.nextID++; sun.name = "Sun"; sun.orbits = null;

Body earth = new Body(); earth.idNum = Body.nextID++; earth.name = "Earth"; earth.orbits = sun;

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

37

Конструкторы

nПамять для объекта выделяет оператор new

nКонструкторы предназначены для формирования начального состояния объекта

nПравила написания конструктора сходны с правилами написания методов

nИмя конструктора совпадает с именем класса

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

38

Особенности конструкторов

nДля конструкторов разрешено использование только модификаторов доступа

nПри написании конструктор не имеет возвращаемого типа

nОператор возврата return прекращает выполнение текущего конструктора

nКонструкторы могут быть перегружены

nКонструкторы могут вызывать друг друга с помощью ключевого слова this в первой строке конструктора

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

39

Особенности конструкторов

nЕсли в классе явно не описан ни один конструктор, автоматически создается т.н. конструктор по умолчанию, не имеющий параметров

nЕсли в классе описан хотя бы один конструктор, то автоматически конструктор по умолчанию не создается

nТакже конструктором по умолчанию называют конструктор, не имеющий параметров

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

40