// 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。。你刪除了有可能會出錯