import java.util.Scanner;
public class InputChecker
{
private Scanner input;
public InputChecker()
{
input = new Scanner(System.in);
}
public int getNextInt(String prompt)
{
System.out.println(prompt);
int number = 0;
while(!input.hasNextInt())
{
System.out.println("That was not an integer.");
System.out.println(prompt);
input.nextLine();
}
number = input.nextInt();
input.nextLine();
return number;
}
public double getNextDouble(String prompt)
{
System.out.println(prompt);
double number = 0.0;
while(!input.hasNextDouble())
{
System.out.println("That was not a number.");
System.out.println(prompt);
input.nextLine();
}
number = input.nextDouble();
input.nextLine();
return number;
}
}
1.开头的scanner为什么要用private再初始化,不能直接写scanner input = new Scanner(System.in); 吗?
2.getNextInt方法里面,倒数第二行为什么要再加一句input.nextLine(); getNextDouble也倒数第二行也加了这一句。我运行的时候发现不加的话输入错误数值后会自动给出两遍“that was not an integer",加了以后就不会有了。可是我不懂为什么要加在这里?
类的成员变量和局部变量的区别?不好意思我是在国外学的,看不太懂部分概念
追答类的成员变量就是实例域,也叫字段。
在一个class中主要有这样几部分:1.构造方法,就是该方法的构造器,一般在方法中初始化类的成员变量;
2.普通方法,就是类的功能;
3.实例域,由成员变量组成。
局部变量:比如你在类的某个方法中要用到一个int型的变量叫做salary,你可以立即定义它并立即使用,但是它的作用域只是在你定义它的这个语句块中或当前类中
这时就在需要的位置写 int salary = 0;
比如以下这段代码:
class Employee
{
private int salary1; //实例域的成员变量
public Employee(int input) //构造器
{
salary1 = input; //在构造器中为成员变量salary1赋值
}
public void doSomething()//普通方法
{
int salary2; //定义局部变量
salary2 = 100; //为局部变量赋值
}
}
在这里,salary1就是类的成员变量,一般在构造方法中初始化;
salary2就是局部变量,作用域是doSomething()方法域