Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我不能在Java类的主方法中声明和运行方法_Java - Fatal编程技术网

为什么我不能在Java类的主方法中声明和运行方法

为什么我不能在Java类的主方法中声明和运行方法,java,Java,可能我在检查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 stati

可能我在检查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);
    }
}

不能在另一个方法中声明方法

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);
}

正如其他人所说,您确实不能在另一个方法中定义一个典型的方法。但是,为了清楚起见,有一个等价的Java8——如果现在还需要使用接口来说明的话。比如说,

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

方法中不能有方法,简单明了。要调用实例方法,您需要一个instance.Meh,它只是匿名类的语法糖,对于有用的值always,它总是可能的。