.class abstract Competitor .super java/lang/Object .field protected health I .field protected name Ljava/lang/String; .field static protected gen Ljava/util/Random; .method static protected ()V .limit stack 2 new java/util/Random dup invokespecial java/util/Random/()V putstatic Competitor/gen Ljava/util/Random; return .end method ; default constructor .method public (Ljava/lang/String;)V .limit locals 2 .limit stack 2 aload 0 invokespecial java/lang/Object/()V aload 0 ldc 100 putfield Competitor/health I aload 0 aload 1 putfield Competitor/name Ljava/lang/String; return .end method .method public abstract fight(LCompetitor;)V .end method .method public decHealth(I)V .limit locals 2 .limit stack 4 aload 0 ldc 0 aload 0 getfield Competitor/health I iload 1 isub invokestatic java/lang/Math/max(II)I putfield Competitor/health I return .end method .method public getName()Ljava/lang/String; aload 0 getfield Competitor/name Ljava/lang/String; areturn .end method .method public getHealth()I aload 0 getfield Competitor/health I ireturn .end method .method toString()Ljava/lang/String; .limit stack 3 aload 0 getfield Competitor/name Ljava/lang/String; ldc " health = " invokevirtual java/lang/String/concat(Ljava/lang/String;)Ljava/lang/String; aload 0 getfield Competitor/health I invokestatic java/lang/Integer/toString(I)Ljava/lang/String; invokevirtual java/lang/String/concat(Ljava/lang/String;)Ljava/lang/String; areturn .end method