moh*_*sar 5 java methods input java.util.scanner
因为我知道更好的做法是尽可能减少代码重复,所以我决定在整个类中只声明一个扫描程序,但是我应该在哪里关闭扫描程序对象,或者它不一定要关闭它,关闭扫描程序做什么呢? .
  private Scanner scanner;
/**
 * Constructor for objects of class Scanner
 */
public Ssss()
{
    // initialise instance variables
     scanner = new Scanner(System.in);
}
public void enterYourName()
{
    System.out.println("Enter your Name");
    String name = scanner.nextLine();
    System.out.println("Your name is:" + name);
}
public void enterYourAge()
{
    System.out.println("Enter your Age");
    int age = scanner.nextInt();
        System.out.println("Your age is: " + age);
}
假设此代码位于一个类中Ssss(正如它所显示的那样),请考虑:
Scanner对象,因此它负责关闭它。Scanner内部资源和类的状态...不同的方法将在不同的时间引用它。Scanner——你会在哪里关闭它?解决方案是你的类Ssss必须提供自己的方法,允许代码使用Ssss说“我已经完成了你”。此方法传统上称为close(),在其中您将关闭扫描程序(并清理任何其他资源)。
客户端(调用类)必须将类的使用包装Ssss在 try-finally 块中,并在子句中调用您的 close()方法finally。
如果您使用的是 Java7,您的类Ssss应该实现AutoCloseable它,以便可以在 try-with-resources 语句中使用它来利用 Java7 功能。