很迷惑,很困惑,希望大家解答解答,不胜感激~~~~public class a1{
public void fangfa(){
String s="123";
StringBuffer a = new StringBuffer(); 
/*
请问一下,为什么这里需要new个实例出来,而不可以直接用append()方法呢?
就象String类的length()这个方法,直接就可以使用,s.length();
有人说如果调别的类的方法,如果你是非静态方法,调用的也是非静态的方法,那么就可以直接使用.
可我这个方法也是非静态方法啊?
我刚学Java,看到JDK API里有那么多现成的方法,我真是不知道该如果使用它们
什么时候需要new,什么时候直接可以使用方法,请大侠指点指点.
*/
a.append(s);
a.append("aaa");
System.out.println(a.toString());
}
public static void main(String[]args){
a1 t = new a1();
t.fangfa();
}
}

解决方案 »

  1.   

    append()方法不是静态的,所以必须先new一个StringBuffer类的对象,之后在调用这个对象的append()方法。
    对于String 来说,你定义一个String s="abc"; 然后调用s.length(),其实就相当于创建了一个String类的对象s之后有调用它的length()方法。
    注意:String类在java中是比较特殊的类,你可以查看java编程思想这本书,看看String类型的解释。
      

  2.   

    看看这个全面解析Java中的String数据类型
      

  3.   

    静态方法可以直接(类名.方法名)来使用,非静态方法需要类的对象来调用,对象就是指new出来的实例。
    String类在java中是一个特殊的类,不用new直接赋值就可以创建对象。
    更多细节楼主还是好好看书吧!书里面都有提到的。
      

  4.   

    推介lz买一本<<java编程思想>>,买的时候注意版本,买最新版的,看了这本书这些问题你都会明白的。