包
- 包的声明必须是Java源文件中的第一条非注释性语句,而且一个源文件只能有一个包声明语句,设计的包需要与文件系统结构相对应。规范:
- 一个唯一的包名前缀通常是全部小写的ASCII字母,并且是一个顶级域名com、edu、gov、net及org,通常使用组织的网络域名的逆序。例如:javagroup.net;声明包为
package net.javagroup.mypackage; - 包名的后续部分依不同机构各自内部的规范不同而不同。这类命名规范可能以特定目录名的组成来区分部门、项目、机器或注册名。
- 一个唯一的包名前缀通常是全部小写的ASCII字母,并且是一个顶级域名com、edu、gov、net及org,通常使用组织的网络域名的逆序。例如:javagroup.net;声明包为
- 使用package关键字声明类所在的包(包也可以理解为命名空间)。包名建议使用全小写形式,不同部分使用点号分隔。每一部分包名对应着磁盘上的一级目录。在自定义包名时,不能使用Java官方已经定义的包名称,否则在程序运行过程中,会抛出java.lang.SecurityException。这是为了安全性方面的考虑,防止恶意篡改Java官方API
- 通常会把包名加类名的组合称为全限定名称,而类名被称为类的简单名称 比如简单名称Student而全限定名称为org.forten.javademo.model.Student
- 包名应该以企业、组织或个人的域名反写形式开头,后接项目名,模块名,程序逻辑层次名等
- Java5以后的静态导入
- 在代码中被static修饰的变量和方法都可以使用以下形式进行静态导入double area=Math.PI乘Math.pow(r,2);可写为double area=PI乘pow(r,2);静态导入后,变量和方法的访问以及调用就可以不加类的名称了。在类中如果使用了过多的来不同其它类中的静态程序成员,则不推荐使用静态导入的语法。
- import的作用时把本类中要使用的其它项目或包中的类引入进来,而在编写编码时只使用其简单类名即可,而不用反复书写其全限定名称。
import org.forten.javademo.model.student;
以上引入其它包中的Student类,我们在这个源代码文件中就不能再引入不同包下的同名类了。如果确实需要在同一个源代码文件中使用两个或多个简单名称相同的类,则只能引入其中的一个,访问其它的类需要使用全限定名称import com.ibm.scss.entity.Student;
- “”是指把java.util包下的所有类都引入到本源代码文件中。""只能表示某包下的所有类,而不能表示某些包类如 "java.。Date",""只能引入一个包级别下的所有类。“import java.util.”只能引入java.util包下的所有类,而java.util包下各个子包中的类是不会被引入的。“import java.util..*;”也是不合法的
- 使用通配符一如某包下的所有类,此做法通常不推荐使用。原因:1.有可能加载过的没有使用的类到内存中;2.使用“*”影响程序代码的可读性。
- 以下时隐式impot到其它类中的:1.java.lang包下的所有类;2.同包的其它类。除以上两种类外的其它包下的类,都必须显式的使用import导入
Stting str="abc";
Integer int=10;
//以下语句使用的Student类是被import引入的
Student fortenStudent=new Student();
//以下语句使用的Student类是使用全限定名称的方式
- 使用了Java禁止使用的包名部分,惠子啊运行时的到java.lang.SecurityException:Prohibited package name:java.utils