Java,PHP等中的“ new”关键字的目的是什么?

时间:2019-07-15 16:38:31

标签: java php python syntax

在许多语言中,我们使用new实例化一个类的新实例。例如,在Java中:

class MyClass {
    int number = 1;

    MyClass(int n) {
        self.number = n;
    }
}
MyClass obj1 = new MyClass(5);

但是,随着我越来越多地使用Python,我开始奇怪为什么甚至需要new关键字。在Python中,我们可以简单地做到:

class MyClass:
    def __init__(self, n):
        self.n = n
obj1 = MyClass(5)

那么,关键字的目的是什么?通过使用关键字可以解决某些语法上的歧义吗?

1 个答案:

答案 0 :(得分:5)

要明确地说“我想创建一个类的新实例”

这是为了与方法调用区分开来,甚至可以这样做:

public class Main {
    public static void main(String[] args) {
        Foo();
        new Foo();
    }

    public static void Foo() {
        System.out.println("Method");
    }

    public static class Foo {
        public Foo() {
            System.out.println("Class");
        }
    }
}

主跑带给您

Method
Class