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

Mic*_*ber -2 php python java syntax

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

class MyClass {
    int number = 1;

    MyClass(int n) {
        self.number = n;
    }
}
Run Code Online (Sandbox Code Playgroud)
MyClass obj1 = new MyClass(5);
Run Code Online (Sandbox Code Playgroud)

但是,随着我越来越多地使用Python,我开始怀疑为什么new关键字甚至是必需的。在Python中,我们可以简单地执行以下操作:

class MyClass:
    def __init__(self, n):
        self.n = n
Run Code Online (Sandbox Code Playgroud)
obj1 = MyClass(5)
Run Code Online (Sandbox Code Playgroud)

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

JCl*_*sic 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");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行main给你

Method
Class
Run Code Online (Sandbox Code Playgroud)

  • 是否记录在某处?还是你的“感觉”?还是常识告诉您呢? (3认同)