Java. Методы. Передача параметров. Передача параметров в методы, страница 2

  • Пример 1 демонстрирует определения методов getMessage() и getSum(). Метод getMessage() не принимает параметры и не возвращает значение с помощью оператора return (тип возвращаемого значения void). Метод getSum() имеет два параметра типа int и возвращает помощью оператора return значение типа int.
  • Пример 1 также демонстрирует различные варианты вызова методов.
  • В примере 2 в методы input() и minimum() в качестве параметра передается массив. Массив относится к ссылочным типам данных, имя массива является ссылкой, которая хранит адрес первого элемента массива с индексом 0. В формальный параметр методов input() и minimum() копируется адрес первого элемента массива и методы могут изменять значения элементов массива.
  • В примере 3 метод input() создает массив и возвращает ссылку на него.
  • В примере 4 метод minmax() ищет наилучшее и наихудшее время заплыва спортсменов и возвращает найденное минимальное значение через return, а найденное максимальное значение через дополнительный параметр – объект класса Out. Oбъект класса Out создается в методе main() и передается как параметр в метод minmax(). Найденное максимальное значение записывается в поле val объекта класса Out.
  • В примере 5 для возврата найденного максимального значения используется параметр массив. Найденное максимальное значение записывается в нулевой элемент параметра массива.
  • В примере 6 не удалось обменять значения переменных a и b целого типа, так как в метод swop() эти переменные передаются по значению, то есть метод swop() работает с копиями значений переменных а и b.
  • Для обмена необходимо определить класс, полем которого является переменная типа int (в примере 7 – это класс Ref с полем val), создать объекты этого класса (в примере 7 в методе main создаются объекты a и b ), в поле типа int объектов записать обмениваемые значения и передать объекты в метод swop().

15

Программирование Тема 3.2 C#. Методы. Передача параметров

16

С#. Методы. Передача параметров

  • Описание метода:
  • Модификатор доступа Тип_возврата имяМетода (Формальные параметры)
  • { /* тело метода */ }
  • Варианты вызова метода:
    1. имяМетода ([Фактические параметры])
    2. имяКласса . имяМетода ([Фактические параметры])
    3. имяОбъекта . имяМетода ([Фактические параметры])
    4. Способы передачи параметров:
    5. по значению;
    6. по ссылке .
  • Разновидности формальных и фактических параметров:
    • входные параметры (параметры – значения);
    • выходные параметры (объявляются с ключевым словом out);
    • ссылочные параметры (объявляются с ключевым словом ref).

17

С#. Методы. Передача параметров

  • В С# существует два способа передачи параметров: по значению и по ссылке.
  • При передаче параметров по значению - значения фактических параметров копируются в соответствующие формальные параметры. Изменение формального параметра не влияет на значение фактического параметра. При передаче объектов копируется ссылка (адрес объекта). После такого копирования, и фактический параметр, и формальный параметр, ссылаются на один и тот же объект. В этом случае сам объект мы можем изменить, а ссылку на него (адрес объекта) – нет.
  • При передаче параметров по ссылке - адреса фактических параметров копируются в соответствующие формальные параметры и по этим адресам есть доступ к значениям фактических параметров и их можно изменить.
  • В С# передача параметров по ссылке реализуется с помощью ссылочных параметров (ref – параметров) и выходных параметров (out – параметров).
  • Разница между ref и out в том, что переменную, переданную через out вы обязаны проинициализировать в методе, куда она передается.

18

C#. Методы. Передача параметров

  • Пример 8. Параметры-значения

19

C#. Методы. Передача параметров

  • Пример 9. Параметры - ссылки

20

C#. Методы. Передача параметров

  • Пример 10. Массив в качестве параметра и возвращаемого значения

21

C#. Методы. Передача параметров

  • Пример 10. Массив в качестве параметра и возвращаемого значения

22

С#. Методы. Передача параметров

  • Пример 11. Возврат двух значений из метода. Выходные параметры

23

C#. Методы. Передача параметров

  • Пример 11. Возврат двух значений из метода. Выходные параметры

24

Контрольные вопросы

  1. Методы в Java : общее определение метода, варианты вызова метода, способы передачи параметров в метод, примеры.
  2. Методы в С#: общее определение метода, варианты вызова метода, способы передачи параметров в метод, примеры.

25