本帖最后由 黄奕豪 于 2012-5-21 21:36 编辑
class Something
{
public static void main(String[] args)
{
Something s = new Something();
/*报错是:无法从静态函数上下文中引用非静态方法,也就是说你的doSomething()函数是非静态的,无法直接在静态的main()函数中调用,正确的调用方法应该是s.doSomething(),非静态的方法要经过对象来引用*/
System.out.println("s.doSomething() returns " + doSomething());//改为s.doSomething()
}
/*静态方法是随着类加载就加载到方法区的,无论你有没有对象,类一进去,静态方法就在方法内存区里了,这时就可以直接通过(类名.方法)来调用了,而非静态方法,也就是没加static修饰的方法是要在创建对象的时候才加载到方法区的!你的主函数是static的,程序一运行就加载到方法区,这时候根本就没有创建任何对象,也不可能存在非静态的方法,你就开始调用非静态的doSomething()方法了,这没有的东西怎么调用啊!是吧?所以这里报错了!!*/
public String doSomething()
{
return "Do something ...";
}
}
|