当前位置: 首页 > 知识库问答 >
问题:

创建类对象有什么意义?[重复]

孔俊友
2023-03-14

当我可以只调用文件并执行完全相同的操作时,创建一个类对象来调用另一个文件中的方法有什么意义?

我所看到和学到的是,为了从另一个文件调用一个方法,您需要首先创建一个类对象,然后使用该对象调用该方法

假设您在“文件Two”中有一个方法

public class FileTwo
{
     public static void method
     {

     }

}

所以,如果我想在另一个文件中调用“方法”,我会这样调用

public class FileOne
{
     FileTwo file = new FileTwo;
     public static void main(String[] args)
     {
          file.method();
     }
}

但是我可以通过调用文件本身来做同样的事情

public class FileOne
{
     public static void main(String[] args)
     {
          FileTwo.method();
     }
}

那么创建类对象有什么意义呢?

共有2个答案

宋飞掣
2023-03-14

当我可以只调用文件并执行完全相同的操作时,创建一个类对象来调用另一个文件中的方法有什么意义?

术语:

    < li >类实例,或简称为对象。短语“类对象”表示类< code>java.lang.Class的一个实例。 < li >调用方法。大家都会理解“打电话”,但在这个语境下就不标准了 < li >方法属于类和/或实例,而不属于文件。这有几个原因,尤其是一个文件可以包含多个类。

换句话说,那么:

当我可以通过类的名称调用相同的方法时,创建一个类的实例来调用其方法之一有什么意义呢?

答:当您要调用的方法是<code>static<code>时,没有特殊的理由通过实例调用它,并且一些样式指南指定实际上不应该这样做。然而,大多数类的大多数方法都不是静态的(它们是实例方法),并且这些方法只能在实例上调用。

作为一个非常粗略的指南,人们创建并使用静态方法进行影响给定类的所有对象或根本不影响给定类的所有对象的操作,而使用实例方法对该类的一个特定实例进行操作或对该类的一个特定实例进行操作。

宰宣
2023-03-14

您正在调用的方法是静态的,这意味着您可以从实例或类型调用它。

通常,您使用静态方法在不需要对象实例操作的外观上进行计算。

class math {

    private int x;

    public math(int init){
        x = init;
    }

    public int sum(int a, int b) {
        return a + b;
    }

    public static int sumInternal(int a) {
        return x + a;
    }
}

< code>math.sum(4,6)不需要math的实例

数学内部(4) 需要一个数学实例。请注意,它已被声明为静态

 类似资料:
  • 问题内容: 可以有一个 实现所有方法 的抽象类-里面没有抽象方法。 例如。: 与拥有与具体类相同的类相比,拥有这样的抽象类(如果有)有什么优势? 我能想到的是,当我将其声明为抽象时,它将不会被实例化。但是,我可以通过将其具体化并将其构造函数设为私有来达到相同的效果。 TIA。 // ================== 编辑:我能想到的另一种用途: 它可能会扩展另一个抽象类或实现一个接口,而不实现

  • 我试图构造MTree类的一个对象(https://github.com/waikato/moa/blob/master/moa/src/main/java/moa/clusterers/outliers/utils/MTree/MTree.java) MTree的构造函数如下所示: 另外,要创建一个MTree对象,我应该创建一个DistanceFunctions对象和一个ComposedSplit

  • 为什么我们创建一个类的对象,而分配给不同类的引用类型。我有两个类,分别是Employee和Student,创建对象的目的是什么 这是怎么工作的?在什么情况下我们创建这样的对象?

  • 我正在尝试对函数返回的值发出警报,并且在警报中得到以下信息: 下面是JavaScript代码: 是我试图检查的函数。

  • 问题内容: 我是使用JAXB的新手,并且使用JAXB 2.1.3的xjc从我的XML模式生成一组类。除了为我的架构中的每个元素生成一个类之外,它还创建了一个ObjectFactory类。 似乎没有什么阻止我直接实例化元素的,例如 而教程似乎更喜欢 如果查看ObjectFactory.java,我会看到: 那怎么办?为什么我还要麻烦保持ObjectFactory类?我假设如果我从更改后的模式重新编译

  • 问题内容: 使用“抽象方法”有什么意义?抽象类不能实例化,但是抽象方法呢?他们只是在这里说“您必须实现我”,如果我们忘记了它们,编译器会抛出错误? 这还意味着其他吗?我还阅读了有关“我们不必重写相同的代码”的内容,但是在抽象类中,我们仅“声明”了抽象方法,因此我们将不得不在子类中重写代码。 您能帮我多了解一点吗?我检查了有关“抽象类/方法”的其他主题,但没有找到答案。 问题答案: 除了提醒您必须实