Java中为静态内部类不能被new呢?

 我来答
百毒千毒
2018-01-05 · TA获得超过4737个赞
知道大有可为答主
回答量:2499
采纳率:88%
帮助的人:841万
展开全部

静态内部类,可以被new取决于你的静态类里面的方法:

得了我给你总结下,这确实有点绕口令,也当我复习一下:总结的不好还请指点!

public class TestStatic {
public static void main(String[] args) {
//1.静态内部类,静态方法!
Test05.StaticClass.show();
//new Test05.StaticClass().show();
//被注释的这里其实是合法的,只是有点多余,你看完整个在回头看这里,这与调用静态方法有违背!

//2.非静态内部类,非静态方法!
new Test06().new StaticClass().show();

//3.静态内部类,非静态方法!
new Test07.StaticClass().show();

//4.本类中的静态内部类,此时他只是一个自己的成员与3相比一下!
new TestStatic.StaticClass().show();

//5:局部匿名内部类!
show();

/*总结一下:你知道,静态方法被访问的时候,只需要: [类名.静态方法] 就可以被访问!
情况1.不用new,就可以访问!
情况2.都是非静态.所以都的new
情况3:为什么要new,是因为你的方法是非静态的,如果是静态,就如同情况1;
情况4:与3是一样!
情况5:属于匿名内部类,在方法里面的!
情况6:就是情况1被注释的部分,它就等价,new了一个静态类,静态类也可以被new只是有点多余,因为他已经存在了!*/

}//情况4:
static class StaticClass{
void show() {
System.out.println("成员属性静态内部类!");
}
}//情况5:
static void show() {
new Object(){
 void show() {
System.out.println("局部内部类!");
}
}.show();
}
}//情况1:
class Test05{
static class StaticClass{//静态类!
static void show() {//静态类中的静态方法!
System.out.println("静态内部类,静态方法!");
}
}
}//情况2:
class Test06{
class StaticClass{//非静态类
void show() {//非静态方法!
System.out.println("非静态内部类,非静态方法!");
}
}
}//情况3:
class Test07{
static class StaticClass{//静态类!
void show() {//静态类中的非静态方法!
System.out.println("静态内部类,非静态方法!");
}
}
}

花开后丶终会落
2018-01-04 · 超过26用户采纳过TA的回答
知道答主
回答量:93
采纳率:62%
帮助的人:26.6万
展开全部
因为是静态啊😂
追问

这怎么解释
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦回三国贱貂蝉
2018-01-05 · TA获得超过1068个赞
知道小有建树答主
回答量:765
采纳率:100%
帮助的人:144万
展开全部
抽像类和接口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式