1 package 和 import
2.1 package
第一:package出现在java源文件第一行。
第二:带有包名怎么编译? javac -d . xxx.java
第三:怎么运行:java完整类名
2.2 import
import什么时候不需要?
java.lang不需要。
同包下不需要。
其他一律都需要
怎么用?
import 完整类名
import 包名.*
案例1:为什么要用package?和用cmd命令时该如何去编译和运行这个包下类的命令(注意观察包的路径)
/* * 1 为什么要是用package? * package是java包机制。包机制的作用是为了方便程序管理。 * 不同功能的类分别存放在不同的包下。(按照功能划分的,不同的软件包具有不同的功能) * * 2 package怎么用? * package是一个关键字,后面加包名。例如: * package com.javaSe.interface * 注意:package语句只允许出现在java源代码的第一行 * * 3 包名有没有命名规范?有 * 一般都采用公司域名倒序的方式(因为公司的域名具有全球唯一性) * 包名命名规范: * 公司域名倒序 + 项目名 + 模块名 + 功能名 * * 4 对于带有package的java程序怎么编译?怎么运行? * 采用之前的编译和运行不行了 * 类名不再是:HelloWorld了 * 类名是:com.javaSe.package.HelloWorld * 编译: * javac -d . HelloWorld.java * 解释一下: * javac 负责编译的命令 * -d 带包编译 * . 代表编译之后生成的东西放到当前目录下(点代表当前目录) * HelloWorld.java 被编译的java文件名 * 运行: * java com.javaSe.package.HelloWorld * * 5 关于import的使用。 * import什么时候用: * A类中使用B类 * A类和B类都在同一个包下。不需要使用import * A类和B类不在同一个包下。需要使用import * java.lang.*;这个包下的类不需要使用import导入。 * * import怎么用? * import语句只能出现在package语句之下,class声明之上。 * import可以使用*号的方式。 * */ // 这里是不是程序的第一行?是的,注释不算 package com.javaSe.packege; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
测试1:注意看包的路径
package com.javaSe.packege; public class Test01 { public static void main(String[] args) { //创建HelloWorld对象 com.javaSe.packege.HelloWorld helloWorld = new HelloWorld(); System.out.println(helloWorld);//com.javaSe.packege.HelloWorld@10f87f48 // 包名可以省略吗? // 思考:这里的包名之所以可以省略,是因为HelloWorld和Test01在同一个package下。 HelloWorld helloWorld1 = new HelloWorld(); System.out.println(helloWorld1);//com.javaSe.packege.HelloWorld@b4c966a } }
测试2:注意看包的路径
package com; // 将需要的类导入。 //import com.javaSe.packege.HelloWorld; import com.javaSe.packege.*; public class Test02 { public static void main(String[] args) { /* * Error:(4, 9) java: 找不到符号 符号: 类 HelloWorld 位置: 类 com.Test02 * */ //HelloWorld helloWorld = new HelloWorld(); /*com.javaSe.packege.HelloWorld helloWorld = new com.javaSe.packege.HelloWorld(); System.out.println(helloWorld);// com.javaSe.packege.HelloWorld@10f87f48*/ //注意看我上面的import,只有我把 HelloWorld helloWorld = new HelloWorld(); System.out.println(helloWorld);//com.javaSe.packege.HelloWorld@10f87f48 } }
测试3:Scanner该如何导包以及导包该有的方式
package com.javaSe.packege; // 你写哪种都可以 //import java.util.Scanner; import java.util.*; public class Test03 { public static void main(String[] args) { // 为什么要这样写? // Test03类和Scanner类不在同一个包下。 // java.util就是Scanner类的包名。 // java.util.Scanner s = new java.util.Scanner(System.in); // 但是你把Scanner的包导入到你的这个类中的话,那么你用可以不用再写他的包名了。 Scanner s = new Scanner(System.in); String str = s.next(); System.out.println("您输入的字符串是:" + str); java.lang.String name = "zhangSan"; System.out.println("名字是:" + name); String userName = "liSi"; System.out.println("用户名是:" + userName); } }