我是Java的新手,我有一个接口包。每个接口都有许多用于接口声明中使用的类型的导入。
// MyInterface.java...
package a.b.c.interfaces;
import java.math.BigDecimal;
import java.util.List;
import java.util.Set;
public interface MyInterface() { ...
然后我有一个包含模型的包,在其中,我正在尝试创建一个实现MyInterface()
的类。
// MyImplementation.java...
package a.b.c.models;
public class MyImplementation implements MyInterface {...
我有两个问题:
MyInterface()
MyImplementation()
?如果没有,那么它是否需要链接
编译时手动? MyInterface()
,则为
它还需要导入接口所需的类型,或
MyInterface.java
的导入是否会解决这个问题?答案 0 :(得分:3)
Java中的导入基本上是告诉编译器在编写MyInterface
时你的意思是a.b.c.interfaces.MyInterface
。绝对可以在不使用导入的情况下编写Java代码,但它非常冗长且看起来很乱。
您需要导入您要使用的任何类型,这些类型与您正在撰写的课程不在同一个包中,或导入java.lang
,因为MyInterface
位于a.b.c.interfaces
在MyImplementation
中{}} a.b.c.model
您需要导入它。
如果您在代码中的任何位置编写类型,则需要导入MyInterface
正在使用的类 - 并且由于您正在实施界面需要在方法声明中编写它们的类型。没有办法在Java中使用与另一个类相同的导入。
以下是我们不需要导入类型的类型使用示例:
UsesBigInteger.java:
import java.math.BigInteger;
public class UsesBigInteger {
public BigInteger get() {
return BigInteger.TEN;
}
}
Main.java
public class Main {
public static void Main(String[] args) {
UsesBigInteger use = new UsesBigInteger();
System.out.println(use.get());
}
}
我们不必在此处导入java.math.BigInteger
的原因是我们实际上从未在任何地方写BigInteger
因此我们不需要告诉编译器我们的意思 - 我们只是从UsesBigInteger.get()
传递返回值,编译器已经知道那是java.math.BigInteger
。
如果我们要保留对BigInteger
的引用,我们需要导入它:
Main.java
import java.math.BigInteger;
public class Main {
public static void Main(String[] args) {
UsesBigInteger use = new UsesBigInteger();
BigInteger it = use.get();
System.out.println(it);
}
}
答案 1 :(得分:-3)
Ans提出第一个问题,你必须导入界面,在课堂上你必须实现你的界面。
关于第二个问题,您只需要导入MyInterface
。 JVM将负责其余工作。
我强烈建议你把oops概念作为一个非常基本的问题。
并且还使用像Eclipse这样的任何IDE。