当前位置: 代码迷 >> Java相关 >> 有关new对象的问题!
  详细解决方案

有关new对象的问题!

热度:114   发布时间:2007-04-03 20:28:00.0
有关new对象的问题!

import mypackage.p;
public class p1
{

public static void main(String d[])
{
p a=new p();
a.show();

System.out.println("ff");
}
}
上面正常运行!

但是:

import mypackage.p;
public class p1
{

p a=new p();

public static void main(String d[])
{

a.show();

System.out.println("ff");
}
}

为什么就不行!

搜索更多相关的解决方案: new  对象  

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
静态方法只能调用静态变量。
----------------解决方案--------------------------------------------------------
因为main是静态的,静态方法里面只能调用静态成员变量,因为静态方法是属于类的,而一般的成员变量是属于对象的

类只有一个,而对象可以有很多个

所以,你把a声明为static的,就可以在main方法里面直接调用了
----------------解决方案--------------------------------------------------------


----------------解决方案--------------------------------------------------------

3Q了

那么简单的问题都要麻烦你们!


----------------解决方案--------------------------------------------------------
你的问题正是我的问题。。。谢谢了。。能加你为好友吗?我的qq是429019169
----------------解决方案--------------------------------------------------------
本人比较笨,接着往下问!

把创建对象的过程放到main方法里再调用它的方法,似乎也不能变成静态的"变量"(这里乱了).
这种创建是不是不会出现在别的静态方法里?(main方法比较特殊吗?还有什么特殊的地方?)

PS:大家的心情我可以理解,就请不要qiu我了,回答问题,谢谢了!
----------------解决方案--------------------------------------------------------

main方法也就是一个普通的静态方法而已,不同的是它是用JVM调用的,是程序的入口

在main方法里面定义的变量,放大一点说,在所有方法里面定义的变量都是局部变量,不分静态和非静态的,因为局部变量它的作用域就是这个方法的范围

把创建对象的过程放到main方法里面,再调用它的方法,这是肯定可以的,因为你生成了一个对象,然后再调用这个对象的方法.这个时候,这个对象只是局部变量,并不是静态变量,我们可以通过它去访问一些非静态变量和非静态方法,为什么我们可以访问,因为我们有对象了.以前之所以不能访问,是因为那些方法和变量都是非静态的.


----------------解决方案--------------------------------------------------------
  相关解决方案