没有类的 Java 方法作用域

标签 java class methods scope

据我了解,在 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);

    }

}

日期格式.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 文件)?

最佳答案

在您所讨论的情况下,静态方法是一个合理的选择。 Static methods/members属于类本身而不属于任何一个实例。有些人将其称为属于该类的所有实例,但这并不是完全相同的含义。

静态方法是无状态的(这意味着它们除了给定的内容之外不依赖于任何其他东西,并且每次对于给定的输入都会产生相同的输出)。就像 HopeHelpful 所说的那样,您可以通过类名而不是实例名来调用/访问静态成员/方法,因为它们不需要实例。

关于没有类的 Java 方法作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35319557/

相关文章:

java - 电话号码到字符转换器

java - 测试相对路径是否会向上移动

java - primefaces - 无 Activity 函数

c++ - 使用单独编译时返回 typedef 类型

javascript - 我可以测试 javascript addRule 支持在 addRule/insertRule 之间切换吗?

java - apache HTMLUNIT.....处理 javascript 时出现问题

ios - 面向对象编程的正确概念

python - 如何将带有 2 个参数的类字典复制到 2 个列表中

java - 为什么 Eclipse 建议我将我的方法设为静态

c++ - 将类构造函数作为方法调用