【问题标题】:homework: how to invoke a java method作业:如何调用java方法
【发布时间】:2009-12-28 23:33:05
【问题描述】:

我有:

/*
 * File: NameSurferEntry.java
 * --------------------------
 * This class represents a single entry in the database.  Each
 * NameSurferEntry contains a name and a list giving the popularity
 * of that name for each decade stretching back to 1900.
 */

import acm.util.*;
import java.util.*;

public class NameSurferEntry implements NameSurferConstants {

/* Constructor: NameSurferEntry(line) */
/**
 * Creates a new NameSurferEntry from a data line as it appears
 * in the data file.  Each line begins with the name, which is
 * followed by integers giving the rank of that name for each
 * decade.
 */
    public NameSurferEntry(String line) {
        findName(line);
        findDecades(line);
    }
...

作为一个班级。

如何从另一个类中调用方法 NameSurferEntry。

【问题讨论】:

  • 嗯,感谢您适当地标记问题,但下次使用更具描述性的标题;)
  • 此外,您还希望调用类与 NameSurferEntry 类位于同一文件夹中。

标签: java class


【解决方案1】:

NameSurferEntry 是构造函数,而不是方法。创建非默认构造函数将隐藏默认的空构造函数。所以

// asume line to be a string containing a line
NameSurferEntry entry = new NameSurferEntry(line);

将是创建 NameSurferEntry 对象的唯一方法。

【讨论】:

    【解决方案2】:

    这个方法是一个构造函数——当你创建一个新的NameSurferEntry 对象并传递一个String 时,它会被调用。你可以这样称呼它:

    NameSurferEntry entry = new NameSurferEntry("some string");
    

    你可以说它是一个构造函数,因为返回类型与类名相同,并且没有方法名。只有在创建新的NameSurferEntry 时才能调用它。

    【讨论】:

      【解决方案3】:

      NameSurferEntry 是该类的构造函数,这意味着每次您使用 new 运算符创建 NameSurferEntry 的新实例时都会调用它。没有其他方法可以调用此方法。

      【讨论】:

        【解决方案4】:

        NameSurferEntry 是该类的构造函数,因此您可以执行以下操作:

        NameSurferEntry myObject = new NameSurferEntry("value");
        

        【讨论】:

          【解决方案5】:

          这是一个构造函数。您可以按以下形式调用它:

          NameSurferEntry newEntry = new NameSurferEntry("string goes here.");
          

          【讨论】:

            【解决方案6】:

            之前的道歉。我在构造函数中看到了一个幻影空洞。正如其他人指出的那样,应该是

            NameSurferEntry nsf = new NameSurferEntry(line);
            

            【讨论】:

              【解决方案7】:

              也可以从另一个构造函数调用一个构造函数。 另请参阅此答案:How do I call one constructor from another in Java?

              而且,如果你将你的类子类化,你可以通过子类的构造函数调用它 调用 super().

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-09-17
                • 1970-01-01
                • 2014-11-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多