File monster.java
package monsters;

public class monsters {
private   int     intStr=0;
public    int     intWis=0;
protected int     intInt=0;
          int     intDex=0;
public    String  strName="";
public    String  strType="";

public monsters() {
	intStr=3;
	intWis=3;
	intInt=3;
	intDex=3;
	strName="None";
	strType="Mean!";
}

private void pokeMonster(){
   System.out.println("Don't poke the " + strType + " monster!");
}

public void prodMonster() {
   System.out.println("Don't prod the " + strType + " monster!");
}

protected void pushMonster() {
   System.out.println("Don't push the " + strType + " monster!");
}

void pickMonster() {
   System.out.println("Don't pick the " + strType + " monster!");
}
} //end of class monsters


File goblin.java
package monsters;
import monsters.*;

public class goblin extends monsters {

	public goblin () {
//		intStr=14;
//C:\jsrc>javac -classpath c:\jsrc -d c:\jsrc goblin.java
//goblin.java:8: intStr has private access in monsters.monsters
//                intStr=14;
//                ^
		intWis=9;
		intInt=13;
		intDex=16;
		strName="Green";
		strType="Goblin";
	}

       public void doubleGoblin() {
		monsters goblinMonster = new monsters();
		    //goblinMonster.pokeMonster(); private
		    goblinMonster.prodMonster();
		    goblinMonster.pushMonster();
		    goblinMonster.pickMonster();
       }

       public void tstGoblin() {
		//pokeMonster(); private
		prodMonster();
		pushMonster();
		pickMonster();
       }
}//end of Class
Filen mash.java
package monsters;
import monsters.*;

public class mash{

public static void main(String [] args) {
     monsters myMonsters = new monsters();
     //myMonsters.pokeMonster();
     //mash.java:8: pokeMonster() has private access in monsters.monsters
     myMonsters.prodMonster();
     myMonsters.pushMonster();
     myMonsters.pickMonster();

     goblin myGoblin = new goblin();
     //myGoblin.pokeMonster(); 
     //mash.java:15: pokeMonster() has private access in monsters.monsters
     myGoblin.prodMonster();
     myGoblin.pushMonster();
     myGoblin.pickMonster();
     myGoblin.doubleGoblin();
     myGoblin.tstGoblin();
// Output:
// C:\jsrc>java -classpath c:\jsrc monsters.mash
// Don't prod the Mean! monster!
// Don't push the Mean! monster!
// Don't pick the Mean! monster!
// Don't prod the Goblin monster!
// Don't push the Goblin monster!
// Don't pick the Goblin monster!
// Don't prod the Mean! monster!
// Don't push the Mean! monster!
// Don't pick the Mean! monster!
// Don't prod the Goblin monster!
// Don't push the Goblin monster!
// Don't pick the Goblin monster!

} //eo main

} //eoc
File sprite
package dungeon;
import monsters.*;

public class sprite extends monsters {

	public sprite() {
//		intStr=14;
//C:\jsrc>javac -classpath c:\jsrc -d c:\jsrc goblin.java
//goblin.java:8: intStr has private access in monsters.monsters
//                intStr=14;
//                ^
		intWis=9;
		// intInt=13;  protected
		// intDex=16;  default package
		strName="Bly";
		strType="Sprite";
	}

	public void doubleSprite() {
		monsters spriteMonster = new monsters();
		//spriteMonster.pokeMonster(); private
		spriteMonster.prodMonster();
		//spriteMonster.pushMonster(); protected
		//spriteMonster.pickMonster(); default package
	}

	public void tstSprite() {
		//pokeMonster(); private
		prodMonster();
		pushMonster();
		//pickMonster(); default package
	}

}// eoc
File dungeon
package dungeon;
import monsters.*;

class dungeon{

	public static void main(String [] args) {
	monsters myMonster = new monsters();
	//myMonster.pokeMonster(); private
	myMonster.prodMonster();
	//myMonster.pushMonster(); protected
        //myMonster.pickMonster();  default package
	//
	goblin myGoblin = new goblin();
	//myGoblin.pokeMonster(); private
	myGoblin.prodMonster();
	//myGoblin.pushMonster(); protected
        //myGoblin.pickMonster(); default package
        myGoblin.doubleGoblin();
        myGoblin.tstGoblin();

        sprite mySprite = new sprite();
        //mySprite.pokeMonster();  private
	mySprite.prodMonster();
	//mySprite.pushMonster(); protected
        //mySprite.pickMonster(); default package
        mySprite.doubleSprite();
        mySprite.tstSprite();
        } // end of main

// Output
// C:\jsrc>java -classpath c:\jsrc dungeon.dungeon
// Don't prod the Mean! monster!
// Don't prod the Goblin monster!
// Don't prod the Mean! monster!
// Don't push the Mean! monster!
// Don't pick the Mean! monster!
// Don't prod the Goblin monster!
// Don't push the Goblin monster!
// Don't pick the Goblin monster!
// Don't prod the Sprite monster!
// Don't prod the Mean! monster!
// Don't prod the Sprite monster!
// Don't push the Sprite monster!
} // eoc