new Bufferedreader(new InputStreamReader(System.in)); 这句是创建一个Bufferedreader类的对象吧,请问对象名是什么?
  Bufferedreader  keybord= new Bufferedreader(new InputStreamReader(System.in));这句书上是写把类的对象赋值给keybord这个变量. 这句话不明白什么意思.请高手解答下...
  下面又写到这个代码  keybord.readLine(); 上面说到第一个创建对象不知道对象名.第二个代码是把对象赋给了变量.对象有什么值 ??  这个keybord变量怎么会有方法呢?不是只有对象才有方法吗,我去了,变量和对象整 不明白了.那个keybord倒底是对象还是变量啊.晕了.

解决方案 »

  1.   

    new Bufferedreader()对象名就是BufferedreaderBufferedreader keybord= new Bufferedreader(new InputStreamReader(System.in));
    new Bufferedreader为变量keybord分配内存
    new InputStreamReader(System.in)通过流读取控制台输入的信息,将内容放到变量keybord中keybord.readLine()调用对象Bufferedreader的方法
      

  2.   

    你的第一个问题:确实创建了一个BufferedReader的对象,但是没有对象名,因为你没给。如果给的话就是
    Bufferedreader keybord= new Bufferedreader(new InputStreamReader(System.in));对象名是keybord。
    第二个问题:你创建了一个对象,名字叫keybord,属于BufferedReader(这是一个类),比如你给一个小狗起了名字叫小黑,keybord就是小黑,而BufferedReader就是狗。小黑具有狗的所有属性,所以能调用狗的所有方法,比如大叫,咬人等。同理,keybord可以调用BufferedReader的所有方法,比如readline()方法,所以才出现了keybord.readline().
    BufferedReader是一个类,是API里的类,不是对象,对象需要创建。keybord才是一个对象。必须有了对象才能调用类的各种方法!
    这样解释不知道你能否明白??
      

  3.   

    楼主Bufferedreader keybord= new Bufferedreader(new InputStreamReader(System.in));这是JAVA最著名的装饰模式,将new InputStreamReader(System.in)放到new Bufferedreader()中就是一种包装,将InputStreamReader对象包装在Bufferedreader中,keybord是一种引用,里面存放的是地址,指向的就是Bufferedreader对象,用keybord调用方法,都是Bufferedreader对象的方法