没有类的Java方法作用域

没有类的Java方法作用域,java,class,methods,scope,Java,Class,Methods,Scope,我知道,在java中,您可以编写一个外部类,该类可以导入到脚本中,然后运行,从而允许在多个不同的地方使用该类 我想知道是否有一种方法可以用一种方法做同样的事情。我发现有时我需要创建一个外部类来做一些非常小的和基本的事情,如下面所示 simpleScript.java public class simpleScript { public static void main() { // just a date variable which I will want to f

我知道,在java中,您可以编写一个外部类,该类可以导入到脚本中,然后运行,从而允许在多个不同的地方使用该类

我想知道是否有一种方法可以用一种方法做同样的事情。我发现有时我需要创建一个外部类来做一些非常小的和基本的事情,如下面所示

simpleScript.java

public class simpleScript {

    public static void main() {

        // just a date variable which I will want to format
        // but I will always one of two formats every time
        // I use a date so I need a library/class function
        Date   dateNow = new Date();

        // to use my library/class function I have to
        // initialize it first
        dateFormat localDateFormat = new dateFormat();

        // now I can use it in the main only
        String   dmyNow  = localDateFormat.dmyFormat(dateNow);
        String   timeNow = localDateFormat.timeFormat(dateNow);

    }

}
dateFormat.java

public class dateFormat() {

    public static String dmyFormat(Date dateArg) {

        SimpleDateFormat dmyStyle = new SimpleDateFormat("dd-MM-yyyy");
        String dateResult = dmyStyle.format(dateArg);

        return dateResult;

    }

    public static String timeFormat(Date dateArg) {

        SimpleDateFormat timeStyle = new SimpleDateFormat("hh:mm:ss");
        String timeResult = timeStyle.format(dateArg);

        return timeResult;

    }

}
在我需要在多个不同的方法中使用它之前,这并不困扰我,有时只用于一个日期,所以我必须不断初始化类以使用其中的方法(我不想使它成为一个全局类)


有没有其他方法可以使我的方法在没有类的情况下可重用(跨多个java文件)?

您指的是静态方法。您可以使用静态方法创建一个类,然后可以在不创建类实例的情况下调用该类


但是,一般来说,这是一种糟糕的面向对象编程设计,表明您需要重新思考您的设计。

您所指的是静态方法。您可以使用静态方法创建一个类,然后可以在不创建类实例的情况下调用该类


但是,一般来说,这是一种糟糕的面向对象编程设计,表明您需要重新思考您的设计。

您可以使用
ClassName.functionName(parameters)

你不需要初始化任何东西。您只需要导入正在使用的类。一个典型的例子是像java.lang.Math这样的库类,它只包含静态方法

public class simpleScript {
    public static void main() {
        Date   dateNow = new Date();

        String   dmyNow  = dateFormat.dmyFormat(dateNow);
        String   timeNow = dateFormat.timeFormat(dateNow);
    }
}

您可以使用
ClassName.functionName(参数)

你不需要初始化任何东西。您只需要导入正在使用的类。一个典型的例子是像java.lang.Math这样的库类,它只包含静态方法

public class simpleScript {
    public static void main() {
        Date   dateNow = new Date();

        String   dmyNow  = dateFormat.dmyFormat(dateNow);
        String   timeNow = dateFormat.timeFormat(dateNow);
    }
}

在您所说的情况下,静态方法是一个合理的选择。属于类本身,而不属于任何一个实例。有些人认为这属于类的所有实例,但这并不是完全相同的含义


静态方法意味着是无状态的(这意味着它们不依赖于其他任何东西,只依赖于给定的内容,并且每次为给定的输入生成相同的输出)。正如HopperlyHelp所述,您可以通过类名而不是instancename来调用/访问静态成员/方法,因为它们不需要实例。

在您所说的情况下,静态方法是一个合理的选择。属于类本身,而不属于任何一个实例。有些人认为这属于类的所有实例,但这并不是完全相同的含义


静态方法意味着是无状态的(这意味着它们不依赖于其他任何东西,只依赖于给定的内容,并且每次为给定的输入生成相同的输出)。正如HopperlyHelp所述,您可以通过类名而不是instancename来调用/访问静态成员/方法,因为它们不需要实例。

您不需要创建类的实例来调用
静态方法。看看这个-您不需要创建类的实例来调用
静态方法。看看这一点——静态类/方法本身并不是糟糕的设计,但它们适用于非常特定的用例(例如,像java.lang.Math这样的无状态算法库)。静态类/方法本身并不是糟糕的设计,但它们适用于非常特定的用例(例如,像java.lang.Math这样的无状态算法库)哇,我从来都不知道这样一件事能帮我省下很多打字时间谢谢一堆哇,我从来都不知道这样一件事能帮我省下很多打字时间谢谢