Дисциплины - Объектно-ориентированное программирование

ООП в Java - Объект как аргумент метода

В качестве аргумента метод может принимать любой тип, в том числе и объект. При передаче объекта методу как аргумента указывается класс объекта (тип объектной переменной).

class Base{
 int a,b;
 void show(){
  System.out.println(a + " : " + b);
 }
}
class Test{
 void f(int x, int y){
  x*=5;
  y/=2;
  System.out.println(x + " : " + y);
 }
 void f(Base obj){
  obj.a*=5;
  obj.b/=2;
  System.out.println(obj.a + " : " + obj.b);
 }
}
class Demo{
 public static void main(String[] args){
  Base obj = new Base();
  Test objFunc = new Test();
  obj.a = 10;
  obj.b = 20;
  objFunc.f(obj.a, obj.b);
  obj.show(); // свойства a и b объекта не изменились
  objFunc.f(obj);
  obj.show(); // свойства a и b объекта изменились
 }
}

где:

objFunc.f(obj.a, obj.b); - передача аргумента по значению.

objFunc.f(obj); - передача аргумента по ссылке.

В Java существует два способа перадачи аргументов методам: по значению и по ссылке. При передаче аргумента по значению в метод передается копия этого аргумента. Если аргумент передается по ссылке, в тело метода поступает ссылка на аргумент.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену