java - java中调用构造函数的方法

标签 java constructor

有人告诉我调用构造函数的方式是 type object_variable = new type 即:

Fraction f1 = new Fraction( 2, 3 );

但我还在 stackoverflow 上读到调用构造函数的方法是使用“this”。方法。哪种方式正确或两种方式都可以接受?因此,在下面的这个例子中,第一行或 one.denominator 部分是对构造函数的调用吗?:

 1  public static Fraction addFraction( Fraction one, Fraction two ) {
 2       int commonDenom = one.denominator * two.denominator;
 3       int newNumerator = one.numerator * two.numerator +
 4                          two.numerator * one.numerator;
 5       return new Fraction( newNumerator, commonDenom );
    }  

最佳答案

一个类可能有两个具有不同参数列表的构造函数。您可以使用 this() 从同一类的另一个构造函数调用一个构造函数。

例如

public class Foo {
   private final String value;
   public Foo() {
      this("default");
   }

   public Foo(String value) {
       this.value = value;
   }
 }

创建新对象时,永远不会使用 new this(),只需使用 new Foo()new Foo("myValue").

关于java - java中调用构造函数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538093/

相关文章:

java - 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost]

java - EHCache JMS 复制限制线程数?

java - 使用 Commons Exec 进行上下文相关执行

java.lang.ClassFormatError : Absent Code attribute in method that is not native or abstract in class file javax/mail/MessagingException

java - 使用 Guice,如何注入(inject)父类(super class)的构造函数参数?

Java:new Properties(...) 和 new Properties().putAll(...) 之间的区别

java - 为什么在泛型类(Java)的构造函数中提供类型参数是错误的?

java - Intellij idea中无法按 "run"

c++ - 如何在 vector 列表初始化时避免对象复制以及如何延长临时对象的生命周期

java - java构造函数中的静态变量初始化