day 07
包机制
- 包名:一般都以公司域名倒置明明。例如:com.baidu.www
- package 命令必须在代码的第一行,否则会报错。
- 可用import语句引入包或包中的类。(当包中有很多类都需要引用时,配合通配符*使用)。
- 结合《阿里巴巴java开发手册》
JavaDoc
javadoc命令是用来生成自己的API文档的
(/**+enter)
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
文档注释加在代码最开始,则是对整个程序进行解释。
文档注释加在方法前,则是对该方法进行注释,一般会自动生成@param @return @throws
Scanner类
//创建一个扫描器对象,用于接收键盘输入的数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//用next方式接收
String str = scanner.next();
System.out.println("输入的内容为:"+str);
}
scanner.close();
//凡是属于IO流的类,如果不关闭会一直占用资源,一定要养成用完就关掉的习惯。
- 创建一个扫描器对象,用于接收键盘输入的数据
- 用next方式接收
- 凡是属于IO流的类,如果不关闭会一直占用资源,一定要养成用完就关掉的习惯。
public class Demo01{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("使用hasNextLine接收数据")
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
next():
- 一定要读取到有效字符后才可以输入。例:键盘输入hello world! 只输出:hello
- 对输入有效字符之前遇到的空白,next()方法会将其去掉。例:键盘输入: hello world! 只输出:hello
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine():
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
package my_scanner;
import java.util.Scanner;
public class Demo04 {
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("输入的不是整数数据!");
}
System.out.println("请输入小数: ");
if(scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据: "+f);
}else{
System.out.println("输入的不是小数数据!" );
}
scanner.close();
}
}
这个代码有两个地方不太明白:
-
当提示输入整数是,键盘输入小数,则会第一个if语句会正常执行,但不用继续输入小数,会直接输出小数数据为:。
原因可能是程序等待用户输入的代码是停留在:i = scanner.nextInt();
所以当输入小数时,数据已经存入scanner中,因此可以直接进行下一步小数判断。
-
在第二个提示输入中输入整数,输出的是整数转换为小数后的小数结果,而不是程序预想的输出“输入的不是小数”
原因:这里应该是有int到float类型的强转,但是debug情况下也没有看到原因。但如果输入的不是八大基本类型,就能正确输出程序预想的输出“输入的不是小数”。
package my_scanner;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入把那个输出执行结果:
Scanner scanner = new Scanner(System.in);
double sum = 0.0;
int m = 0;
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m+1;
sum = sum + x;
System.out.println("输入第"+m+"个数,当前总和为"+sum);
}
System.out.println("共输入"+m+"个数,总和为"+sum+",平均值为"+(sum/m));
scanner.close();
}
}
2020.9.22 21:57