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

本文详细解析静态内部类的使用场景,包括静态方法访问、非静态内部类实例化、局部匿名内部类,以及静态内部类作为本类成员的区别。通过实例代码演示了静态内部类的实例化必要性和特殊情况.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展开全部

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

得了我给你总结下,这确实有点绕口令,也当我复习一32313133353236313431303231363533e58685e5aeb931333365633839下:总结的不好还请指点!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("静态内部类,非静态方法!");

}

}

}

f278d45c32b356c738b4c2c0d9de179b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值