我说的是我们导入的东西。
假设有类似的东西:
import java.util.Scanner;
util
是包,Scanner
是类,对吧?
这可以永远概括,并说在import语句中,第一个是java / javax(还有其他吗?),第二个包,第三个类和第四个,如果有的话,将永远是属于该类的方法吗?
是否有任何例外,如果是,请为其命名。
答案 0 :(得分:4)
这可以永远概括,并且可以说在import语句中,第一个是java / javax(还有其他吗?),第二个包,第三个类和第四个,如果有的话总是属于类的方法?
不是,不。
该软件包为java.util
,您肯定会查看其他软件包,包括您撰写的软件包。
在正常的import语句中,它将是一个包,然后是特定的类名或*
(用于导入包中的所有类)。但是类名可以是嵌套的类名,所以你可以拥有:
import foo.bar.Outer.Nested;
其中foo.bar
是包名称,Outer.Nested
是类名。
然后是静态导入,您可以在其中导入类的成员,例如
import static java.lang.Math.sqrt;
有关详细信息,请参阅Java tutorial on imports。
答案 1 :(得分:0)
不,它不需要从java开始,你可以使用任何东西作为包名。通常,包名称具有以下模式:com.someone.project.any.package.Class
其中com.someone
表示域,project
项目名称和any.package
项目内的包层次结构。这只是一个惯例,但我建议你使用它。
另请查看:https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
答案 2 :(得分:0)
来自andEngine库的简单示例:
org.andengine.entity.modifier.FadeOutModifier;
你可以看到它有四个点头。最后一个是类,扩展修饰符类,扩展实体类,在org.andengine包中......它也不是以java开头。
希望它解释一下
答案 3 :(得分:0)
在你的例子中
import java.util.Scanner;
java.util
是包,Scanner
是您从该包导入的类,以便编译器可见。
例如,请参阅相当普通的java文件的imports部分中的这些行:
import java.util.Map;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.lang.StringUtils;
这些都是有效的导入,导入Map
包中的java.util
界面,ImmutableMap
包中的com.google.common.collect
类等。