import java.util.*; public class RandomChars { 
private static Random rand = new Random(); 
public char next() { 
return (char)rand.nextInt(128); 
} public static void main(String[] args) { 
RandomChars rc = new RandomChars(); 
for(int i = 0; i < 10; i++); 
System.out.print(rc.next() + " "); 

}import java.nio.*;
import java.util.*;public class AdaptedRandomChars16 extends RandomChars implements Readable{
    private int count;
    public AdaptedRandomChars16(int count) {
        this.count = count;
    }
    
    public int read(CharBuffer cb) {
        if(count-- == 0)
            return -1;
        String result = Character.toString(next()) + " ";
        cb.append(result);
        return result.length();
    }
    
    public static void main(String[] args) {
        Scanner s = new Scanner(new AdaptedRandomChars16(10));
        while(s.hasNext())
            System.out.print(s.next() + " ");
    }
}代码是这样的,上面的是父类,下面的是子类,子类的,String result = Character.toString(next()) + " "; 
这句话,我哪都找不到Character,虽然DEBUG这句话时候转到父类的return (char)rand.nextInt(128); 但还是有点不大明白。希望指点。

解决方案 »

  1.   

    Character是java标准库里的类,而且是final class,就是被固化的类,既不能被改变,又不能被继承。
    toString是该类的一个静态方法,这种方法比较特别,不需要用实例来调用,可直接用类名来调用。
    一些实用类里的方法基本都是静态方法,如常用的Integer.parseInt之类的方法。
      

  2.   

    Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
    static String toString(char c) 
    返回一个表示指定 char 值的 String 对象。 
      

  3.   

    是由于next()转到父类的,子类种调用next()方法,子类继承了父类的这个方法,但是方法定义还是在父类的
      

  4.   


    Character只是一个java.lang里的包的一个FINAL类而已,可以把他当作一个工具类就成了