powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Параметры методов
15 сообщений из 15, страница 1 из 1
Параметры методов
    #34556484
kylix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли Java передать в качестве параметра метода другой метод? Если да как это реализуется
...
Рейтинг: 0 / 0
Параметры методов
    #34556517
Sim@k0ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kylixМожно ли Java передать в качестве параметра метода другой метод? Если да как это реализуется

Привет!
Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 void  Go(){
	bla(getA(), getB());
}

 int  getA(){
	 return   5 ;
}
 int  getB(){
	 return   10 ;
}
 int  bla( int  A,  int  B){
	 return  A * B;
}
...
Рейтинг: 0 / 0
Параметры методов
    #34556519
kylix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да че то так не срабатывает пишет legendre.java:117: ')' expected
...
Рейтинг: 0 / 0
Параметры методов
    #34556523
Sim@k0ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kylixда че то так не срабатывает пишет legendre.java:117: ')' expected

Покажи кусок кода
...
Рейтинг: 0 / 0
Параметры методов
    #34556527
kylix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
double lfk(double fun(double ),long n,double T)
{return (2*n+1)/T; }
...
Рейтинг: 0 / 0
Параметры методов
    #34556529
Sim@k0ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kylixdouble lfk(double fun(double ),long n,double T)
{return (2*n+1)/T; }

А это что - double fun(double )?
...
Рейтинг: 0 / 0
Параметры методов
    #34556533
kylix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем мне нужно передать в функцию другую функцию возвращающую значение double , и имеющую в качестве параметра переменную того же типа, определить ее заранее я не могу.Это может быть любая функция определенная аналогичным образом . В С++ это делалось с помощью указателя на функцию , в java указателей нет поэтому не знаю как реализовать
...
Рейтинг: 0 / 0
Параметры методов
    #34556536
kylix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть надо код перенести с С++ на Java :)
...
Рейтинг: 0 / 0
Параметры методов
    #34556543
Sim@k0ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kylixТо есть надо код перенести с С++ на Java :)

С С++ я к сожалению не знаком, потому и не знаю ничего про указатели на функцию.
Наверное кроме примера, опубликованного выше, помочь ничем не смогу =(
Сори.
...
Рейтинг: 0 / 0
Параметры методов
    #34556546
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kylixТо есть надо код перенести с С++ на Java :)
А выучить Java религия не позволяет?
Такие словая как интерфейс и делегатирование знакомы?
...
Рейтинг: 0 / 0
Параметры методов
    #34556548
блаблабла
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1-й способ (кошерный) Interface + Implementations. Передается объект релизующий нужную логику.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 interface  Command
{
     void  execute();
}

 class  foo
{
     public   static   void  main(String[] args)
    {
        f( new  Command() {
             void  execute() {
                System.out.println("foo");
            }
        });
    }
     static   void  f(Command cmd)
    {
        cmd.execute();
    }
}
2-й способ (не кошерный, но применимый) Reflection API. Передается название метода (статического или нет - по ситуации).
...
Рейтинг: 0 / 0
Параметры методов
    #34556552
kylix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Leonidv : религия позволяет , только я новичок в Java поэтому спрашиваю . В гугле искал но не нашел, может плохо искал. Про интерфейсы слышал еще из IDL , про делегатирование нет .

2 : блаблабла спасибо использую ваш вариант
...
Рейтинг: 0 / 0
Параметры методов
    #34556779
Vurn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как любая функция в Java принадлежит объекту, то и вместо передачи указателя на функцию передается ссылка на объект, в котором нужная функция и вызывается.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Параметры методов
    #38788978
leonrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kylix, вот работающий пример (из 2-х файлов )
//---- 1:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
/*
 *  развитие примера От: 	MAPCUAHUH  Дата: 	26.03.07 20:02  http://rsdn.ru/forum/java/2420033.flat
 */
class F1 implements MyFuncPtr {
	public int doInit(int a) {
		return a + 1;
	}
	public void init(){
		Propi propi = new Propi();
		propi.init(this, 1);		
	}
}

class F2 implements MyFuncPtr {
	public int doInit(int a) {
		return a - 1;
	}
	public void init(){
		Propi propi = new Propi();
		propi.init(this, 1);		
	}	
}

public class Main {
	
	public static void main(String[] args) {
		System.out.println("start -----");
		
		F1 f1 = new F1();
		f1.init();
		
		F2 f2 = new F2();
		f2.init();
		
		System.out.println("===== finis");
	}
}



//---- 2:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
interface MyFuncPtr {
	int doInit(int a);
}

public class Propi {
	public void init(MyFuncPtr f, int arg) {
		System.out.println("\ndo something ...");
		System.out.println(f.doInit(arg));
	}
}



//---- результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
start ---

do something ...
2

do something ...
0
finis ===
...
Рейтинг: 0 / 0
Параметры методов
    #38788989
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonrom,

С разморозкой! На пост 2007го года отвечам рецептом 2007го года? Тут, как бы, Java 8 уже вышла с лямбдами.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Параметры методов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]