实现类或导入类java

时间:2012-10-29 10:47:36

标签: java class interface import

内部对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使用,资源,速度?

6 个答案:

答案 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,因为后者意味着myClassConstantes,这是没有意义的。

从Java 5.0开始,您可以选择其他更好的选项。

import static com.myproject.Constantes.PI;
// OR
import static com.myproject.Constantes.*;

public class MyClass{
  MyClass(){
       System.out.println("Math: " + PI);
  }
}