java类两个构造方法参数个数与类型相同 java构造函数必须与类同名_Java

郎朗坤

其他讲师和助教有时会告诉我构造函数是专门的方法。我一直认为Java构造函数不是专门的方法。如果构造函数完全是方法,我希望它们具有与方法相同的功能。至少它们之间的相似之处要多于不同之处。构造函数与方法有何不同?让我来计算一下...构造函数必须由new运算符调用,而方法不能由new运算符调用。相关:构造函数不能按名称调用,而方法必须按名称调用。构造函数可能没有返回类型,而方法必须具有返回类型。如果方法与类具有相同的名称,则它必须具有返回类型。否则,它是一个构造函数。在同一个类定义中可以有两个MyClass()签名,这些签名被不同地对待,这一事实应使所有确信构造函数和方法是不同的实体:public class MyClass {   public MyClass() { }                                   // constructor   public String MyClass() { return "MyClass() method"; } // method}构造函数可以初始化实例常量,而方法则不能。公共和受保护的构造函数不被继承,而公共和受保护的方法则被继承。构造函数可以调用父类或同一个类的构造函数,而方法不能调用super()或this()。那么,方法和构造函数有何相似之处?它们都有参数列表。它们都具有代码块,当该块被直接调用(方法)或通过new(构造函数)调用时,将执行该代码块。至于具有相同可见性修饰符的构造函数和方法...字段和方法具有更多共同的可见性修饰符。构造函数可以是:私有的,受保护的,公共的。方法可以是:私有,受保护,公共,抽象,静态,最终,同步,本机, strictfp。数据字段可以是:私有,受保护,公共,静态,最终,瞬态,易失。结论在Java中,构造函数的形式和功能与方法明显不同。因此,将它们称为专用方法实际上会使新程序员更难学习差异。它们比相似的东西有更多不同,学习不同的实体对于Java至关重要。我确实认识到Java在这方面与其他语言(即C ++)不同,在C ++中,专用方法的概念起源于语言规则并受其支持。但是,在Java中,构造函数根本不是方法,更不用说专门的方法了。甚至javadoc都认识到构造函数和方法之间的差异远大于相似之处。并为构造函数提供了单独的部分。