Как передать в метод экземпляр класса
Перейти к содержимому

Как передать в метод экземпляр класса

  • автор:

Как передать объект в метод java

Для передачи объекта в метод необходимо объявить параметр метода, который будет принимать объект нужного типа. Например:

public void someMethod(MyObject obj)  // тело метода > 

В данном примере метод someMethod принимает объект класса MyObject , передаваемый в качестве аргумента метода. Чтобы передать объект в метод, необходимо создать экземпляр класса, и использовать его в качестве аргумента метода. Например:

MyObject obj = new MyObject(); someMethod(obj); 

Здесь мы создали экземпляр класса MyObject и передали его в метод someMethod . Внутри метода someMethod мы можем работать с переданным объектом, вызывая его методы или обращаясь к его полям.

Как передать экземпляр класса другому классу без наследования?

У меня есть 3 класса: API, AccountCategory и BaseCategory. В классе API есть метод выполнения запроса к API. Мне нужно воспользоваться этим методом в классе AccountCategory, который наследуется от BaseCategory.

class API: def execute_request(self, method: str, data: dict) -> dict: response = post("", dumps(data)) return loads(response.text) class BaseCategory: . class AccountCategory(BaseCategory): def set_system_proxy(self): response = None # Здесь нужно использовать метод execute_request() 

Как грамотно передать экземпляр класса API классу BaseCategory без наследования?
Отслеживать
задан 14 июн 2022 в 12:59
30 5 5 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

class API: def execute_request(self, method: str, data: dict) -> dict: response = post("", dumps(data)) return loads(response.text) class BaseCategory: def __init__(self, api): self.api = api class AccountCategory(BaseCategory): def set_system_proxy(self) -> dict: return self.api.execute_request("SetSystemProxy", None) api = API() account_category = AccountCategory(api) account_category.set_system_proxy() 

Отслеживать
30 5 5 бронзовых знаков
ответ дан 14 июн 2022 в 13:30
Roman-Stop RU aggression in UA Roman-Stop RU aggression in UA
23.6k 1 1 золотой знак 19 19 серебряных знаков 30 30 бронзовых знаков

Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.

  • python
  • ооп
  • классы
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8466

Как передать указатель на метод экземпляра класса, как параметр конструктора?

Добрый вечер, подскажите.
Я написал класс чтения из pipe и заметил, что сообщения дробятся, по этому я решил создать класс буферизатора, который будет накапливать прочтенные данные. Класс, читающий данные из pipe, в своем конструкторе имеет параметр, указывающий, какую функцию надо вызвать, когда приходят данные и туда я хочу передать функцию из класса буферизатора. Напрямую это сделать нельзя, так как функция экземпляра не является static. Я начал читать про путь с использованием подставного callback, но потом наткнулся, что можно использовать std::function и std::bind. Вот это я и попытался сделать, но так и не понял, как довести дело до ума.
В классе, который читает данные из pipe я определил

class NamedPipeClass < NamedPipeClass(char* _pipeName, bool isClient, std::functionReadCallBack) < . onReadCallback = ReadCallBack; >; std::function onReadCallback; >

И создавая экземпляр класса

MessageCollectorClass* msgCollector = new MessageCollectorClass(); NamedPipeClass* hltPipe = new NamedPipeClass(myfifo, true, std::bind(&msgCollector::AddData, this, std::placeholders_1));

но это не правильно. Подскажите, как это сделать корректно?

  • Вопрос задан более трёх лет назад
  • 818 просмотров

Как передать объект в класс js?

Шта? В чем задача-то? Какой результат хочется иметь? «В класс» можно унаследовать все, что угодно — любые данные легко передаются как в статические свойства так и в динамические через конструктор.

WblCHA

VoidVolker, и причём здесь наследование? Так-то да, так можно, но это не наследование.
VolgaVolga @VolgaVolga

Лишено смысла, т.к. Person — не функция.

Irene_kvlv @Irene_kvlv Автор вопроса
VoidVolker, это микрозадача для решения глобальной задачи.
VoidVolker @VoidVolker Куратор тега JavaScript

WbICHA, видимо не совсем точно выразился: берем класс, в нем определяем нужные свойства, методы, параметры конструктора и наследуем другой класс от него. Очевидно же, что класс наследуется от класса и в этом классе можно все что надо сделать.
Irene_kvlv Дык я и спрашиваю — какую конкретно задачу вы хотите решить?

Решения вопроса 1

RAX7

В качестве альтернативы наследованию можно использовать агрегацию

const obj = < _sayHi() < console.log(`Hello, my name is $!`); > >; class Person < constructor(name, age, methods) < this.name = name; this.age = age; this.methods = methods; if (this.age < 0) < this.age = 0; >> sayMyName() < this.methods._sayHi.call(this); >> new Person('Heisenberg', 52, obj);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *