感染新冠躺了几天,学习的艰难往往不是知识本身的难度,而是要受到身体以及现实的种种干扰。
1 包机制
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。包相当于我们windos中的文件夹,在不同的文件夹中,我们可以使用相同命名的文件。
1.1 包的用法
- 一般用域名倒置作为包的命名。www.csdn.net → net.csdn.www
- 包的语法格式。
package com.nic.www; //放在类的前面,以表明是属于包中的类。
- 导入包,使用其他包中的类或数据。
import java.util.Date; //导入包放在当前包的后面,如果直接导入包中的类,注意不能重名。
2 JavaDoc
生成自己的API文档。
2.1 代码使用
package com.nic.www;
/**
* @author Nic
* @version 1.0
* @since jdk1.8
*
*/
public class DocDemo {
String name;
/**
*
* @param name
* @return
* @throws Exception
*/
public String test (String name) throws Exception {
return name;
}
}
在IDEA通过 /** 进行编辑,能标注
- @author 作者
- @version 版本
- @since 最早使用的的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
2.2 cmd编译API文档
在java文件所在位置通过cmd指令 javadoc -encoding UTF-8 -chatset UTF-8 DocDemo.java 生成html文件,打开即可查看API文档。
通过API文档,可以清楚的看见我们标注的信息,以及我们使用的方法和构造。
3 用户交互Scanner
java.util.Scanner是java提供的用于接收用户输入的工具类
3.1 基本语法
- 创建扫描器
Scanner scanner = new Scanner(System.in);//创建一个扫描器,用于接收键盘数据
- 通过Scanner类的next系列方法获取用户输入,读取前一般通过hasNext()或hasNextLine()判断输入是否完毕。
Scanner scanner = new Scanner(System.in);//创建一个扫描器,用于接收键盘数据
System.out.println("使用next方法接收:");
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输出:"+str);
}
scanner.close();
输入:Hello Java
输出:Hello
Scanner scanner = new Scanner(System.in);//创建一个扫描器,用于接收键盘数据
System.out.println("使用nextLine方法接收:");
if (scanner.hasNext()){
String str = scanner.nextLine();
System.out.println("输出:"+str);
}
scanner.close();
输入:Hello Java
输出:Hello Java
Scanner类中的next()和nextLine()方法,是有区别的,next方法接收数据以空格或回车为结束,并且有效字符之前的空白会被省略;nextLine方法不以空格结束,以回车结束,可以接收到空白输入。
3.2 不同数据类型的输入
- 以小数,整数为例,对不同数据类型进行输入。
package com.scanner;
import java.util.Scanner;
public class Sdemo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.println("请输入:");
if (scanner.hasNextInt()){
i=scanner.nextInt();
System.out.println("整数数据:"+i);
}else {
System.out.println("不是整数");
}
if (scanner.hasNextFloat()){
f=scanner.nextFloat();
System.out.println("小数数据:"+f);
}else {
System.out.println("不是整数");
}
scanner.close();
}
}
注意这里使用的next系列方法对应输入的数据。整数是nextInt,小数是nextFloat。
3.3 应用
- 要求:接收多个数字,并求其总和和平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出结果。
package com.scanner;
import java.util.Scanner;
public class Sdemo3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 建立扫描器,接收输入
System.out.println("请输入数字:");
double d = 0.0; // 指定一个double类型的变量,用来储存输入的数字的值
int num = 0; // 指定一个int类型的变量,用来储存输入的值的个数
while (scanner.hasNextDouble()){ //建立一个循环,检测是否还有输入的值
double D = scanner.nextDouble();//接收输入的值
num++;//计数
d+=D;//储存输入的值
System.out.println("请继续输入:");
}
if (scanner.hasNextLine()){ //通过if选择,判断是否输入了非数字
System.out.println("总和:"+d+"平均值:"+(d/num)); // 输出总和和平均值
}
scanner.close();
}
}