一个java文件有多个类,编译后有几个class文件

说明:这是一个新的系列,定下一个目标,只要不忙,每天都会进行一次更新

验证

public class ClassD {
	ClassB b;

	public static void main(String[] args) {
		System.out.println("xxx");
	}
	class ClassE {
		ClassB b;
	}
}

class ClassF {
	ClassB b;
}
class ClassG {
	ClassB b;
}
abstract class ClassH {
	ClassB b;
}
interface ClassI {
}

上面的代码中一共有6个类,ClassD ClassE ClassF ClassG ClassH ClassI
ClassD 正常类
ClassE classD的内部类
ClassF 只是写在classD.java中的普通类
ClassG 只是写在classD.java中的普通类
ClassH 抽象类
ClassI 接口
编译之后,如图:
在这里插入图片描述

可以证明的是
如果再一个java文件中有多个类,除去内部类,剩下的每个普通类都会生成一个class文件

生成完的class文件:

public class ClassD {
    ClassB b;
    public ClassD() {
    }
    public static void main(String[] args) {
        System.out.println("xxx");
    }
    class ClassE {
        ClassB b;
        ClassE() {
        }
    }
}
class ClassF {
    ClassB b;
    ClassF() {
    }
}
class ClassG {
    ClassB b;
    ClassG() {
    }
}

abstract class ClassH {
    ClassB b;
    ClassH() {
    }
}
interface ClassI {
}

总结

如果一个java文件中有多个类,除去内部类,剩下的每个普通类都会生成一个class文件
如上图:一个java文件中有6个类生成了5个class文件,因为其中有个类是内部类,如果都是外部类的话,则会生成6个class文件

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值