package com.github.wdn.coding2017.jvm.clz; /** * Created by Administrator on 2017/4/6 0006. */ public class AccessFlag { /* enum { ACC_PUBLIC,ACC_FINAL,ACC_SUPER,ACC_INTERFACE,ACC_ABSTRACT,ACC_SYNTHETIC } private int ACC_PUBLIC =0x0001; //可以被包的类外访问。 private int ACC_FINAL =0x0010; //不允许有子类。 private int ACC_SUPER =0x0020;//当用到invokespecial指令时,需要特殊处理③的父类方法。 private int ACC_INTERFACE= 0x0200; //标识定义的是接口而不是类。 private int ACC_ABSTRACT= 0x0400; //不能被实例化。 private int ACC_SYNTHETIC= 0x1000; //标识并非Java源码生成的代码 */ private int flagValue; public AccessFlag(int value) { this.flagValue = value; } public int getFlagValue() { return flagValue; } public void setFlagValue(int flag) { this.flagValue = flag; } public boolean isPublicClass(){ return (this.flagValue & 0x0001) != 0; } public boolean isFinalClass(){ return (this.flagValue & 0x0010) != 0; } }