day07

day 07

包机制

  1. 包名:一般都以公司域名倒置明明。例如:com.baidu.www
  2. package 命令必须在代码的第一行,否则会报错。
  3. 可用import语句引入包或包中的类。(当包中有很多类都需要引用时,配合通配符*使用)。
  4. 结合《阿里巴巴java开发手册》

JavaDoc

javadoc命令是用来生成自己的API文档的

(/**+enter)

参数信息:

  1. @author 作者名
  2. @version 版本号
  3. @since 指明需要最早使用的jdk版本
  4. @param 参数名
  5. @return 返回值情况
  6. @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流的类,如果不关闭会一直占用资源,一定要养成用完就关掉的习惯。

  1. 创建一个扫描器对象,用于接收键盘输入的数据
  2. 用next方式接收
  3. 凡是属于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():

  1. 一定要读取到有效字符后才可以输入。例:键盘输入hello world! 只输出:hello
  2. 对输入有效字符之前遇到的空白,next()方法会将其去掉。例:键盘输入: hello world! 只输出:hello
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串

nextLine():

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白。
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();
    }
}

这个代码有两个地方不太明白:

  1. 当提示输入整数是,键盘输入小数,则会第一个if语句会正常执行,但不用继续输入小数,会直接输出小数数据为:。

    原因可能是程序等待用户输入的代码是停留在:i = scanner.nextInt();

    所以当输入小数时,数据已经存入scanner中,因此可以直接进行下一步小数判断。

  2. 在第二个提示输入中输入整数,输出的是整数转换为小数后的小数结果,而不是程序预想的输出“输入的不是小数”

    原因:这里应该是有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

posted @ 2020-09-22 21:59  victory衍  阅读(68)  评论(0编辑  收藏  举报