实现类或导入类java

implement class or import class java

在内部,Java是更好的,或者是最优的,还是标准的:用常量或使用点标记实现一个类?

例子:

选项1:

1
2
3
4
5
6
7
import com.myproject.Constantes;

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

选项2:

1
2
3
4
5
6
7
8
import com.myproject.Constantes;

public class myClass implements Constantes {

    myClass() {
        System.out.println("Math:" + PI);
    }
}

哪个更好,为什么?MVJ的使用,资源,速度?


如果Constantes纯粹是常量的集合(顾名思义),并且没有定义您需要在myClass中公开的功能,那么a)它不应该是interface,b)您不应该实现/扩展它。导入并使用它,如选项1所示。


我认为应该使用选项1来避免错误地使用当前类中内部定义的另一个PI。


应该使用选项1,因为这将定义使用导入类中定义的常量。

如果在myclass中有一个名为pi的局部变量,选项2将使用该变量,而不是导入类中的变量。


通常,清晰度比性能更重要,这也不例外。

选项1优先于选项2,因为后者意味着myClass是一个Constantes,这没有意义。

自Java 5以来,你还有一个更好的选择。

1
2
3
4
5
6
7
8
9
import static com.myproject.Constantes.PI;
// OR
import static com.myproject.Constantes.*;

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


implements(接口,而不是类)表示myClass必须遵守Constantes指定的合同(通常带有一些必须在类中实现的方法规范)。

请检查面向对象编程(programaci_n orientada a objetos)概念,然后再了解任何给定语言的特殊性。


你在这里做了两件不同的事情。在第一个片段中,您只是编写引用Constantes类/接口中的内容的代码,因此需要使用import,而在第二个片段中,您声明您的代码必须符合Constantes接口,即实现其中的任何和所有方法。

干杯,