Java 扫描仪(System.in)被认为是合成的一个例子吗

Java 扫描仪(System.in)被认为是合成的一个例子吗,java,Java,我刚刚在学习作文。扫描器(System.in)会被视为合成的一个例子吗 是的 关键是,扫描器有一个可以读取数据的“东西”,它知道如何将数据处理成令牌 “某物”可以是标准输入、文件、字符串等;但是没有一个单独的子类来读取这些内容。实际上,您不能扩展扫描仪,因为它是最终版 关于新扫描仪(System.in)您可能会发现有趣的是扫描仪没有保持系统。直接在中:如果您查看,您将看到: public Scanner(InputStream source) { this(new InputStreamRe

我刚刚在学习作文。扫描器(System.in)会被视为合成的一个例子吗

是的

关键是,
扫描器有一个可以读取数据的“东西”,它知道如何将数据处理成令牌

“某物”可以是标准输入、文件、字符串等;但是没有一个单独的子类来读取这些内容。实际上,您不能扩展
扫描仪
,因为它是
最终版

关于
新扫描仪(System.in)
您可能会发现有趣的是
扫描仪
没有保持
系统。直接在
中:如果您查看,您将看到:

public Scanner(InputStream source) {
  this(new InputStreamReader(source),    
      WHITESPACE_PATTERN);
}

private Scanner(Readable source, Pattern pattern) {
  // ...
  this.source = source;
   // ...
}
源文件
(例如
中的
系统)被包装在
InputStreamReader
中,它是由
扫描仪
固定的文件。所以你有两个层次的组成:

  • 扫描仪
    有一个
    可读的
    输入流阅读器
  • InputStreamReader
    有一个
    InputStream
    (例如
    System.in