新人在学习Thinking in java 中遇到的一点问题拜托大家来帮帮忙

// Implementing an interface to conform to a method
import java.nio.*;
import java.util.*;

public class RandomWords implements Readable{

private static Random rand = new Random();

//24位大写字母
private static final char[] capitals =
"ABCDEFGHIJKLMNOPQRSTUVWSYZ".toCharArray();
//24位小写字母
private static final char[] lowers =
"abcdefghijklmnopqrstuvwsyz".toCharArray();
//5位元音字母
private static final char[] vowels =
"aeiou".toCharArray();
//为什么要写这个int
private int count;
public RandomWords(int count){ this.count = count; }
public int read(CharBuffer cb){
//什么意思
//我把这句话删了都不影响输出
if(count-- == 0)
return -1;

cb.append(capitals[rand.nextInt(capitals.length)]);
for(int i = 0;i < 4; i++){
  cb.append(vowels[rand.nextInt(vowels.length)]);
  cb.append(lowers[rand.nextInt(lowers.length)]);
}
cb.append(" ");
//这里返回数值的意义在哪?
//我把这句话删了都不影响输出
return 10;

}

public static void main(String[] args){
//句子中的new RandomWords(10)是什么意思
Scanner s = new Scanner(new RandomWords(10));
while(s.hasNext())
System.out.println(s.next());
}
}

代码太乱了,上图片来看看
new RandomWords(10)生成一个RandomWords实例,其中参数为10
//为什么要写这个int
private int count;
因为构造函数要用到,因为函数read要用到。

//我把这句话删了都不影响输出
if(count-- == 0)
return -1;
肯定不影响输出啊,你count=10的,这里就只判断了一下,你输入new RandomWords(0)就影响了

//这里返回数值的意义在哪?
//我把这句话删了都不影响输出
return 10;
因为int read函数要求返回一个int。。你删除了有可能会出错