刚刚开始学习java,这是我遇见的第一个不懂的问题,把自己的学习结果写下来,不足之处还望指点。
package:
1、顾名思义,package就是包的意思,能够对项目中类进行更好的管理。
2、我们经常看见它声明在源文件的首行
3、用package可以声明类或接口所属的包,这些com.atguigu.exer就是包,下面有很多.java源文件
4、同一个包下面,不能命名同名的接口和类,但是不同的包下面可以
5、com.atguigu.exer4就放在com/atguigu/exer4目录下,可以一层一层的找到。
import
1、import语句时一种引用包中各个类的方便用法,我们知道,一个类可以使用所属包中的所有类。但是如果想使用其他包中的公共类就需要加一些限定名。
例如:java.time.LocalDate today=java.time.Local.now();如果每次使用都这样限定很繁琐,所以引入了import用法。
2、import语句声明在源文件的顶部(但是位于package语句的后面。)
3、有时需要导入很多个结构,那就顺次写下来就可以。
比如:
import java.util.Arrays;
import java.time.LocalDate;
4、有的时候想导入一个包中所有的类或者接口,就直接import java.util.*
5、但是,用“*”号的方法只能导入一个包,而不能用 import java.*或者 import java.*.* 的方式,导入java下的所有包
6、在发生命名冲突的时候,比如不同的包下有相同的类,而同时在程序中导入这两个包,就会有冲突。
比如,下面这两个包中都有Date类,那再使用 Date today;的时候就会有编译错误。
这时可以采取第二种方法,如果两个Date都想用,则采用第三种方法。
一、
import java.util.*;
import java.sql.*;
————————————————————————————————————————————————————————————————————————————————————
二、
import java.util.*;
import java.sql.*;
import java.util.Date;
————————————————————————————————————————————————————————————————————————————————————
三、
var deadline=new java.util.Date();
var today=new java.sql.Date(...);
7、如果是使用java.lang包下定义的类和接口,可以省略import结构。(包括基本Object类、Class类、String类、基本类型的包装类、基本的数学类等等最基本的类。)
8、import语句允许导入静态方法和静态字段。
比如在源文件顶部添加一条指令:import static java.lang.System.*;
那输出的时候就不用加类名前缀,直接out.println(" ");就可以