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);
}
}