首页 > 解决方案 > 我们可以在一个java类中创建两个同名的对象吗

问题描述

public class Main {
    void sum(int a, int b) {
        System.out.println((a + b));
        Main ob = new Main();
        ob.difference(200, 100);
    }

    void difference(int a, int b) {
        System.out.println((a - b));
    }

    public static void main(String args[]) {
        Main ob = new Main();
        ob.sum(100, 25);

    }
}

当我在主方法中创建同名对象时,编译器会抛出错误,但是当我在不同方法中创建同名对象时,它会被编译。为什么会这样?

标签: javaclassmethodsscope

解决方案


您可以重用引用以使变量指向一个新对象,如下所示。在这种情况下,您不必再次声明类型。对于同一个变量,它总是相同的类型,这就是静态类型语言的工作方式。

public static void main(String args[]) {
    Main ob = new Main(1);
    ob.sum(100, 25);

    ob = new Main(2);
    ob.sum(100, 25);
}

推荐阅读