Как из метода вызвать другой метод?
При работе с API я замечаю как интересно можно «вытащить» данные из объекта.
Допустим, я хочу узнать имя друга у человека с именем Alex.
Чтобы это сделать, я пишу:
String NameOfThumb = person.getPerson(«Alex»).getFriends.get(0).getName();
Как сделать так, чтобы вызывая один метод, я мог сразу вызвать внутри другой, а внутри другого следующий? Как называется такое действие?
В интернете я в основном натыкаюсь на extends , implements , но примеры, которые приводят, слишком простые и обощенные. Как я понимаю, что мне стоит использовать это, только я не знаю как именно, чтобы добиться того же результата, что я привел сверху.
Прошу меня поправить, если я некорректно выразился и неправильно использовал терминологию.
Java 8 Ссылки на методы
Работают ссылки на методы при условии, что параметры вызываемого метода и параметры в лямбде совпадают.
3. Function
Cобственный метод и лямбда
Cобственный метод и ссылка на метод
4. Конструкторы
Помимо методов, так же можно передавать ссылки на конструкторы.
Для этого создадим класс User
и интерфейс UserFactory
Теперь же, вместо реализации интерфейса используем ссылку на конструктор User
5. Больше примеров
5.1 Function composition
Ссылки на методы смотрятся еще лучше при цепочке обращений.
Где мы сначала декларативно описываем необходимые действия, и уже после вызываем всю цепочку.
5.2 Comparator
Создадим класс User
И тепер вывести отсортированный список не составляет труда (и кода)
Где мы отсортировали список по имени
Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Детальную информацию Вы можете найти у нас на сайте.
ВИДЕОУРОК №43. Как вызвать метод из другого метода
На первом уроке вы узнаете, как скачать и установить комплект разработчика приложений (JDK) версии 1.8.0_131.
На этом уроке мы поработаем с командной строкой и напишем первую программу.
На протяжение урока мы разберемся, как с самого начала скачать и установить среду разработки Intellij IDEA v2017.1.2
На этом уроке мы с Вами рассмотрим и выполним базовые настройки среды разработки Intellij IDEA
В текущем видео-уроке мы напишем первую нашу программу, которая будет выполнять базовые вещи. А также рассмотрим основные сочетания клавиш, которые гораздо упростят Вам жизнь.
В данном уроке мы разберём: Что же такое переменная? Из чего переменная состоит? Какие соглашения по именованию переменных существуют?
В ходе видео-урока мы с Вами рассмотрим простые типы данных, к примеру, их в Java 8 штук. Также узнаем, какие же значения в локальных переменных по умолчанию содержаться
На протяжение урока мы разберём, что же такое константа и как в Java константы создаются, какие правила использование констант и когда их стоит применять.
В этом уроке Вы познакомитесь с различными система счисления используя язык программирования Java, как же записать значение 2-ой, 8-ой, 10-ой и 16-ой системы счисления в простые типы данные. Использую таблицу Юникодов мы отобразим некоторые символы.
Большинство людей применяют простые типы данных не предполагая, что существуют ещё классы обёртки. В данном видео мы разберём: что же такое класс-обёртка? Когда лучше его применять? И какие же методы они содержат?
Из этого видео-урока Вы узнаете, что такое явное и неявное преобразование, почему явное преобразование может быть опасным, рассмотрим множество примеров для лучшего понимания как работает преобразование для базовых типов данных.
В этом видео показана работа арифметических операторов: сложение (+), вычитание (-), умножение (*), деление(/), деление по модулю (%). Что касается простых арифметических операторов, то тут всё понятно. А вот как же работать с делением по модулю в разных ситуациях? Детально всё разберем, т.к. данные вопросы могут возникнуть при Java сертификации.
Как вызвать метод из другого метода в том же классе (Java)
Я пытался понять, как вызвать метод из другого метода одного и того же класса, прочитав «Java, как программировать ранние объекты».
В настоящий момент я полностью потерян, аналогия, используемая в книге, позволяет легко визуализировать происходящее. Однако переводить это в код сложно.
Я много раз пытался понять это и получил это далеко: PS ради простоты я исключил код, который, как мне кажется, не важен для моего вопроса.
Что такое код для вызова метода внутри другого метода? Знают ли значения цены каждого отдельного дома?
4 ответа
вы могли бы просто позвонить calculateFees(housePrice); поскольку единственной переменной housePrice видимой в точке вызова, является instance variable private int housePrice;
Предполагая, что у вас есть вызов constructor для установки housePrice на основе того, как вы создаете BuyAHouseInc
//метод для расчета сборов и налогов public void calculateFees (int housePrice)//это получает this.housePrice?/делаем некоторые вещи>
Да, это получит housePrice пройденный через calculateFees(housePrice);
calculateFees(int housePrice) Локальная переменная, определенная выше, видна только внутри метода calculateFees(int housePrice)
ОБНОВЛЕНИЕ: исходя из комментариев, вам нужно будет обновить свой сеттер, чтобы передать цену дома
Пожалуйста, поправьте меня, если я ошибаюсь, но это возможное решение:
Да, ваши предположения верны.
Однако есть что-то важное. Этот код:
Java передается по значению. Вы передаете стоимость housePrice, но вы не изменяете первоначальный housePrice.
Поэтому, если вы «сделаете что-то» и измените переменную housePrice, она не будет сохранена, если вы не установили housePrice внутри calculateFees.
В таком случае лучше всего манипулировать любыми переменными-членами через getters/seters. Конвенция, кстати, заключается в том, что сеттер всегда должен принимать значение. Это не произвольно, так как многие библиотеки полагаются на методы set/get, действующие определенным образом.
Я отредактировал вышеупомянутый ответ, чтобы быть более ясным.
Разделите два класса в разных файлах. Еще одна вещь, которую нужно указать, — использовать double вместо цены int. Вы также должны создавать геттеры и сеттеры, чтобы иметь возможность получать и устанавливать свои свойства. Вы также должны добавить конструктор в класс. Затем вы можете создать экземпляр класса в главном и вызвать его методы. Основным методом будет что-то вроде ниже.
Надеюсь, вы найдете это полезным и удачи! Я редактировал код и добавлял метод toString для вывода информации в виде строки.