【问题标题】:Input and objects invoking their own methods调用自己的方法的输入和对象
【发布时间】:2013-04-09 23:53:01
【问题描述】:

我需要知道我是否理解这一点。在这个程序中,变量“input”被创建为一个 Scanner 对象,因此可以访问 Scanner 方法。这是继承吗?其次,直到将“半径”指定为双精度数据类型并使用 nextDouble 方法,用户的实际输入才会发生。我有这个正确的吗?如果你是用 Scanner 制作对象,为什么不能直接使用 Scanner?

 public class ComputeAreaWithConsoleInput {
 public static void main(String[] args) {

// Create a Scanner object

Scanner input = new Scanner(System.in);    //Scanner object called "input" created


System.out.print("Enter a number for radius: ");
double radius = input.nextDouble();        // "input" set as double datatype


double area = radius * radius * 3.14159;


System.out.println("The area for the circle of radius " +
radius + " is " + area);
   }
}

【问题讨论】:

  • 不,它不是继承。您只能直接访问静态方法。当用户在输入他们输入的任何双精度值后按下回车键时,用户的实际输入就会发生,然后将其分配给您声明的双精度变量。
  • why can't you just use Scanner directly? 没有特别的原因。它可以静态实现。比现在方便多了。

标签: java methods input


【解决方案1】:

在这个程序中,变量“input”被创建为一个 Scanner 对象,因此可以访问 Scanner 方法。这是继承吗?

不,它不是inheritance. 这没有定义Scanner 的子类型。 inputScanner实例

直到将“半径”分配为双精度数据类型并使用 nextDouble 方法,用户的实际输入才会发生。我说的对吗?

再次,不。这个特殊的Scanner 从标准输入读取。对流的写入和从该流中的读取是分离的,并且彼此之间完全没有关系。如果没有要读取的数据,读取流将阻塞。读取等待,直到用户输入内容。

如果你是用 Scanner 制作对象,为什么不能直接使用 Scanner?

这是一个无意义的问题。

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多