摆脱或复制私有静态

我有以下代码:


private static double calcTotalMass() { return bike_mass + human_mass; }

private static double calcWeight() { return calcTotalMass() * grav_acc; }

private static double calcWork() { return calcWeight() * height; }

...

由于在 Java 中一切都在一个类中,我无法定义全局函数,static因此需要一个访问说明符。


在 C++ 中,我可以将第一个函数缩短为


double calcTotalMass() { return bike_mass + human_mass; }

在朱莉娅它会是


calcTotalMass() = bike_mass + human_mass

但那是另一回事了。


在 C++ 中,访问说明符是成组的,这样private不必为每个方法重复。Java 中是否有类似的东西,或者这就是语言的构建方式?


拉莫斯之舞
浏览 146回答 1
1回答

芜湖不芜

不,每个成员都有单独指定的访问权限。然而您可以将方法放在嵌套的类/接口中并声明嵌套类型为私有。不幸的是,代码向右倾斜,这从来都不是好事。另外,IIRC,有一些奇怪的东西阻止了import static您自己的嵌套类。如果你想费心去测试这些方法,private是一个非常糟糕的选择。最好将它们放在单独的“包私有”类或接口中。类成员的默认访问修饰符是“包私有”,这可能是可以接受的。接口成员的默认访问修饰符public很有用。对于成员变量,您还可以将static.还有一个 JEP,Concise Method Bodies,它可以让你的代码更短,更像你的 Julia 示例。(虽然我在这里:方法名称中的“calc”通常是多余的。可变静态是一个非常非常糟糕的主意。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java