关于JAVA静态主函数的问题

classouter{privateinta=1;classinner{publicvoidshow(){System.out.println("ÄÚ... class outer
{
private int a=1;
class inner
{
public void show()
{
System.out.println("ÄÚ²¿Àà"+a);
}
}
public void method()
{
inner k=new inner();
k.show();
}
}
class test
{
public static void main(String[] args)
{
outer k=new outer();
k.method();
int aa=100;
System.out.println(aa);
//outer a=new outer();
}
}
问题1:
main既然为静态函数那么为何可以创建非静态整型变量aa,并且使用?
问题2:类outer不是非静态吗,为何也可以使用?
展开
 我来答
isc039
2014-11-30 · TA获得超过7.8万个赞
知道小有建树答主
回答量:744
采纳率:0%
帮助的人:449万
展开全部

问题1:对于静态,你基本可以这么理解

    只有类内部的变量和方法才有静态和非静态的概念,一但进入方法内部,则在方法内部定义的变量是不存在什么静态不静态的。

public class ClassDemo{
    public static int var;         // 类中可以定义静态变量
    
    public static int fun(){       // 类中可以定义静态方法
        int aa = 0;               // 进入方法内部,变量不再存在静态或非静态的区别
    }
}


问题2:类不存在静态或非静态的概念,静态或非静态只能作用于类的成员变量与成员方法。

sunjianning988
2014-11-30
知道答主
回答量:37
采纳率:0%
帮助的人:23.1万
展开全部
aa是局部变量,不能用static修饰。

不是说outer你非静态类不可以使用。当然可以通过new来使用。
只是他不能通过类名.方法名来调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式