内部对Java更好,或者什么是最优,或者标准是什么:使用常量或使用点表示法实现类?
示例:
选项1:
import com.myproject.Constantes;
public class myClass {
myClass() {
System.out.println("Math: " + Constantes.PI);
}
}
选项2:
import com.myproject.Constantes;
public class myClass implements Constantes {
myClass() {
System.out.println("Math: " + PI);
}
}
哪个更好,为什么? MVJ使用,资源,速度?
答案 0 :(得分:9)
如果Constantes
纯粹是常量的集合(顾名思义)并且没有定义您需要在myClass
中公开的功能,那么A)它不应该是{{} 1}}和B)你不应该实现/扩展它。导入它并在选项1中使用它。
答案 1 :(得分:4)
我认为应该使用OPTION 1来避免误认为当前类内部定义的另一个PI。
答案 2 :(得分:3)
应该使用选项1,因为这将绝对使用导入类中定义的常量。
如果你在myClass中有一个名为PI的局部变量,那么选项2将是你的变量,而不是导入类中的变量。
答案 3 :(得分:1)
你在这里做了两件不同的事情。在第一个片段中,您只是编写恰好引用Constantes
类/接口中的内容的代码,因此需要import
'ed而在第二个片段中,您正在说明您的代码必须符合Constantes
接口,即实现其中的任何和所有方法。
干杯,
答案 4 :(得分:1)
implements
(一个接口,而不是一个类)说myClass
必须遵守Constantes
指定的合同(通常有一些必须在你的班级中实现的方法规范)。 / p>
在进入任何特定语言的特殊性之前,请检查面向对象的编程(ProgramaciónOrientadaa Objetos)概念。
答案 5 :(得分:1)
清晰度通常比性能更重要,这也不例外。
选项1优先于选项2,因为后者意味着myClass
是Constantes
,这是没有意义的。
从Java 5.0开始,您可以选择其他更好的选项。
import static com.myproject.Constantes.PI;
// OR
import static com.myproject.Constantes.*;
public class MyClass{
MyClass(){
System.out.println("Math: " + PI);
}
}