Java入门教程:怎么向程序输入信息


  上次的JAVA程序完成一个输出,那么怎么向程序输入信息呢?我们先看下面一个程序:

  import java.util.Scanner;

  public class FirstOutput{

  public static void main(String[] args){

  System.out.println("请输入");

  Scanner s = new Scanner(System.in);

  String string = s.next();

  System.out.println(string);

  }

  }

  同样在命令提示符下先用javac命令编译这个FirstOutput.java文件,然后运行java FirstOutput会显示"请输入"这三个字,然后可以通过键盘输入我们想输入的信息,比如输入nba,按下回车,程序就会在下一行显示nba出来.

  下面我们来分析一下这段代码:

  import java.util.Scanner;

  这句代码表示我们这个程序需要用到一个Scanner类,这个类放在java.util这个包里面,在JAVA中包的含义类似于WINDOWS下的文件夹,比如系统盘(一般是C盘)下面有Documents and Settings这个文件夹一样.如果我们需要引用一个类,就可以用import关键字来调用它.

  public class FirstOutput

  同样的,一个public class的名字一定要跟文件名字一样,所以这个文件要保存为  FirstOutput.java

  System.out.println("请输入");

  Scanner s = new Scanner(System.in);

  定义一个名叫s的Scanner引用变量, 它指向了一个新的Scanner对象.注意这里的s并不是一个Scanner对象,它只是指向这个对象的一个变量.打个比方来说,我们可以去银行办存折或者是银行卡来存钱取钱,我们决定办卡, Scanner s代表办了一张卡s,new Scanner(System.in)表示银行新开了一个帐户,然后通过 = 来把你的卡跟这个新的帐户联系起来,s只是指向这个Scanner对象,正如这个卡指向这个帐户一样,s是用户和系统的媒介,卡是我们和银行的媒介.

  String string = s.next();

  定义一个String类型的引用变量string,并且使它指向s.next(),上一句我们知道s是指向一个Scanner对象的,Scanner为我们提供了一些方法来操作对象,这个next()就是其中之一,s.next()表示这是调用s指向的对象的next方法,它可以从键盘获取输入,直到按下回车键结束. 还是用银行卡的例子来说,银行卡有取钱查询转帐等等方法来操作它指向的帐户,系统通过你的卡来获取相应的帐户信息并对其进行操作,如果我们用卡号是9558xxxxx的卡去取钱,实际上是在做 9558xxxxx.取钱() 操作考虑一下这个关系:

  s.next()    ←-------------→    9558xxxxx.取钱()

  System.out.println(string);这个应该很清楚是输入信息了,但是不同的是这里没" ",上一句话我们知道string已经指向了我们输入的内容,所以这里输出的也是string指向的内容,从结果我们可以很容易看出这一点来.

  注意:每个语句都是以";"结束的,{ } 一定是成对出现的.

  好了,我们再运行一次程序,试着输入下面的内容

  java and c++

  看看会得到什么样的结果呢?

相关内容