对象和类
静态方法不能访问某一对象的实例域,因为它不能操作对象,但静态的方法可以访问自身类中的静态域
在下面两种情况下使用静态方法:一个方法不需要访问对象状态,其所需参数都是通过显式参数提供(例如:Math.pow());一个方法只需要访问类的静态域
Scanner类的一些知识点:next()方法如果没有扫描读入非空格或非回车字符是不会创建String对象并返回的,并且next()遇到空格或者说\t或者是回车都会结束扫描;nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行(会忽略掉末尾的回车进入下一行开始扫描)。所以它和next()的区别就是它没有分隔符,直接扫描全部的键盘输入内容,并创建对象进行将其引用返回。
Scanner类还可以用来读取文件
1
2
3
4
5try {
scanner = new Scanner(new File(fileName));//注意传入的是File
} catch (FileNotFoundException e) {
e.printStackTrace();
}使用Scanner对象中hasNext()方法来判断文件是否读取完毕,另外一个就是用来获取控制台输入的nextLine(),nextInt()等方法来获取文本的信息,非常类似于自己在控制台输入的数据变成了文本内容,给Scanner对象获取。
nextInt:Scanner中的nextInt()只会读取数值,剩下”\n”还没有读取
next()与nextLine()区别
next():
- 1、一定要读取到有效字符后才可以结束输入。
- 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
- 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- 4、next() 不能得到带有空格的字符串。
nextLine():
- 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符,并且将光标定位在下一行(会忽略掉末尾的回车进入下一行开始扫描)。
- 2、可以获得空白。
Java控制台输入输出
- 使用Scanner
Scanner scanner=new Scanner(System.in)
,然后使用Scanner相关的方法,比如scanner.nextInt() scanner.nextLine() scanner.next()等- 使用BufferReader
1
2
3
4
5
6
7
8
9BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
try {
String str1=bufferedReader.readLine();
String str2=bufferedReader.readLine();
System.out.print(str1);
System.out.print(str2);
} catch (IOException e) {
e.printStackTrace();
}