代码1访问代码2
代码1:
class Demo3 { public static void main(String[] args) { Demo4 a = new Demo4(); a.print(); } }代码2:
class Demo4{ public void print(){ System.out.println("这个是Dmeo4的print方法..."); } }运行结果:
如果把他们都放入不同的包,还能访问的到吗?
创建了分别的包: 代码3 访问 代码4
代码3:
package a; class Demo3 { public static void main(String[] args) { Demo4 a = new Demo4(); a.print(); } }代码4:
package b; class Demo4{ public void print(){ System.out.println("这个是Dmeo4的print方法..."); } }结果是编译Demo3就报错
上面说找不到符号,就是找不到Demo4 而Demo4是在b包的 下面我将代码3改下(代码4不用改), 看看能不能访问。
这时候就要用到导包语句;
导包语句的格式:
import 包名.类名; (导入xxx包中某个类)
导包语句要注意的细节:
1. 一个java文件中可以出现多句导包语句。
2. "*"是 导包语句的通配符。可以匹配任何 的类名。
3. import aa.*; 是不会作用于aa包下面的子包的。
推荐使用:import 包名.类名; 因为使用*通配符会导致结构不清晰。
什么时候使用import语句:
1. 相互访问的两个类不是在同一个包下面,这时候就需要使用到导包语句。
2. java.lang 是默认导入 的,不需要我们自己导入。
修改后的代码3:
package a; import b.Demo4; class Demo3 { public static void main(String[] args) { Demo4 a = new Demo4(); a.print(); } }然后运行:
Demo3.java:2: b.Demo4 在 b 中不是公共的; 这个其实很简单。。这关于权限的问题,我会在下次介绍。
修改后的代码4:
package b; public class Demo4{ public void print(){ System.out.println("这个是Dmeo4的print方法..."); } }类名前面加上 public 这样Demo3就有权限访问了。
运行结果:
在JDK中,不同功能的类都放在不同的包中,其中Java的核心类主要放在java这个包及其子包下,Java扩展的大部分类都放在javax包及其子包下。为了便于后面的学习,接下里简单介绍Java语言中的常用包。
-java.lang:包含了Java语言的核心类,如String、Math、System和Thread类等,使用这个包中的类无须使用import语句导入,系统会自动导入这个包下的所有类。
-java.util:包含了Java中大量工具类、集合类等,例如Arrays、List、Set等。
-java.net:包含Java网络编程相关的类和接口。
-java.io:包含了Java输入、输出有关的类和接口。
-java.awt:包含用于构建图形界面(GUI)的相关类和结构。
等等我就不一一介绍了,自己查看API吧~
下面我来体现下导入java.util.Arrays; 吧~
代码5
import java.util.Arrays; class Demo5 { public static void main(String[] args) { int[] arr = {8,5,7}; Arrays.sort(arr); for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } } }
导包后就可以使用util.Arrays 了...
运行结果:5 7 8
交流企鹅:654249738,和自学者交流群:517284938