2016-03-10 26 views
-6

也許我檢查Java核心中錯過了一些東西的主要方法run方法,但請大家幫我明白爲什麼我不能在Java中使用的主要方法聲明的方法,其被註釋掉爲什麼我不能宣佈和Java類

class R { 
     public int cal(int a, int b) { 
      return a + b; 
     } 

    public int cal3(int a, int b) { 
     return a * b; 
    } 
} 

public class Rect { 
    public static void main(String arg[]) { 

     /*public static int cal2 (int a, int b){ 
      return a + b; 
     } 

     int ab2 = cal2(2,2); 
     System.out.println(ab2);*/ 
     R r = new R(); 
     int ab = r.cal(2, 2); 
     System.out.println(ab); 

     int ab3 =r.cal3(2,3); 
     System.out.println(ab3); 
    } 
} 
+4

您不能在方法內部使用簡單和簡單的方法。這不是Java。 –

+1

要調用實例方法,您需要一個實例。 –

回答

1

你不能在另一個方法中聲明一個方法。

public static int cal2 (int a, int b){ 
     return a + b; 
} 

public static void main(String arg[]) { 

    int ab2 = cal2(2); 
    System.out.println(ab2); 
    R r = new R(); 
    int ab = r.cal(2, 2); 
    System.out.println(ab); 

    int ab3 =r.cal3(2,3); 
    System.out.println(ab3); 
} 
1

正如其他人所說的,的確,你不能在另一個裏面定義一個典型的方法。但是,爲了清楚起見,使用BiFunction接口有一個等效(Java8-,如果仍然需要在最近陳述)。例如,

public static void main(String[] args) { 
    BiFunction<Integer, Integer, Integer> func = (a, b) -> a + b; 
    System.out.println(func.apply(3, 4)); 
} 
+0

呃,只是一個匿名類的語法糖,這一直是可能的(對於「永遠」有用的值)。 – chrylis