2013-11-21 4 views
1

я знаю, что мы делаем это в C++, как это:Как иметь две функции, которые вызывают друг друга Java

int a(); 
int b() { 
    return a(); 
} 
int a() { 
    return b(); 
} 

, как я могу сделать что-то подобное в Java?

+11

Вы уже сделали это. Но обратите внимание, что это бесконечный цикл, ваш компьютер может взорваться и уничтожить вселенную. – Maroun

+0

вы можете сделать это так же! –

+0

Same Way .................. :-) –

ответ

6

В Java вам не нужно объявлять переменные или функции перед их использованием. Поэтому:

int b() { return a();} 
int a() { return b();} 

Обратите внимание, что это даст StackOverflowError.

+2

Итак, ваше имя будет в трассировке стека: P –

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ: Название этого сайта также ... – tilpner

+0

Кроме того, на Java есть только StackOverflowError, no Exception ... – tilpner

3

Нет необходимости в форвардной декларации, просто напишите функции.

3

Вот оно: Опасный код для вас:

public class b 
{ 

    Object first() 
    { 
    System.out.println("i am inside first function"); 
    return second(); 
    } 

    Object second() 
    { 
    System.out.println(" Like i care ! i'm scared of StackOverflowError dude !!"); 
    return first(); 
    } 

    public static void main(String [] args) 
    { 
    new b().first(); 
    } 

} 
+0

+1 за то, что вы смеетесь , – Maroun

+0

@ Марун Марун Рад, что вы использовали около 47 лицевых мышц. –

+0

@aman вы используете какие-то авторские права здесь :) – Batty

Смежные вопросы