代码之家  ›  专栏  ›  技术社区  ›  Post Self

删除或复制私有静态

  •  0
  • Post Self  · 技术社区  · 6 年前

    我有以下代码:

    private static double calcTotalMass() { return bike_mass + human_mass; }
    private static double calcWeight() { return calcTotalMass() * grav_acc; }
    private static double calcWork() { return calcWeight() * height; }
    ...
    

    static 并且需要一个访问说明符。

    double calcTotalMass() { return bike_mass + human_mass; }
    

    在茱莉亚那里

    calcTotalMass() = bike_mass + human_mass
    

    但那是另一回事。

    private 不必为每个方法重复。Java中有类似的东西吗?或者这就是语言的构建方式?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Tom Hawtin - tackline    6 年前

    不,每个成员都有各自指定的访问权限。

    • 可以将这些方法放在嵌套类/接口中,并声明嵌套类型private。不幸的是,代码向右倾斜,这永远都不好。还有,IIRC,有些奇怪的事情阻止了 import static 来自您自己的嵌套类。
    • 如果你想测试这些方法, private 真是个糟糕的选择。最好将它们放在一个单独的“包私有”类或接口中。
    • 类成员的默认访问修饰符是“package private”,这是可以接受的。
    • 接口成员的默认访问修饰符是 public static .

    还有一个犹太人, Concise Method Bodies ,这可能会使您的代码略短,更像您的Julia示例。

    (在这里,方法名中的“calc”通常是多余的。可变静力学是个非常非常糟糕的主意。)