/* File.......: MyPackage.java Author.....: Michael Thomas 02/03/99, ver 1.0 - 02/03/99 Compile....: MyPackage.bat Run Browser: MyPackage.html Run JDK....: appletviewer MyPackage.html Contents of MyPackage.bat: (Compile) javac MyPackNone.java -d . javac myPack/MyPackClassA.java -sourcepath myPack -d . javac myPack/MyPackClassB.java -sourcepath myPack -d . javac myPack/myPacktest/MyPackTestA.java -sourcepath myPack/myPackTest -d . javac MyPackage.java -d . */ import java.applet.Applet; //needed for: extends Applet import java.awt.Graphics; //needed for: paint(Graphics g) import java.awt.Color; import myPack.MyPackClassA; import myPack.MyPackClassB; import myPack.myPackTest.MyPackTestA; //*********************************************************************** public class MyPackage extends Applet //*********************************************************************** { final int YSKIP = 15; //Y pixel skip increment. (Row Width) final int XCOL1 = 25; //Column 1, Screen positioning final int XCOL2 = 400; //Column 2, Screen positioning public final int XPOS1 = 0; //X Axis - position 1 public final int XPOS2 = XPOS1+YSKIP; //X Axis - position 2 int intLineNum = 0; //Line # to display on screen. int XCol = 0; int YPos = 0; //Row pointer (Y axis) public Graphics mpg; //----------------------------------------------------------------------- public void init() { setBackground( Color.white ); } //----------------------------------------------------------------------- public void paint(Graphics g) { this.mpg = g; YPos = YSKIP; intLineNum = 1; //Must initialize here, because paint() frequently. XCol = XCOL1; Show("Start: MyPackages",XPOS1); MyPackClassA mpa = new MyPackClassA(); Show( "Imported package: import bin.MyPackClassA;", XPOS2 ); myPack.MyPackClassB mpb = new myPack.MyPackClassB(); Show( "Specified package directly: bin.MyPackClassB(); "+ " - did not import!", XPOS2 ); //MyPackClassA1 mpia1 = new MyPackClassA1(); Show( "Compile error: Class MyPackClassA1 not found in type declaration. "+ "Package imported, but class is not public", XPOS2 ); MyPackNone mpn = new MyPackNone(); //noname package, same directory. Show( "Instantiate MyPackNone(). A no name package in same directory!", XPOS2 ); MyPackTestA mpta = new MyPackTestA(); Show( "Used: import bin.MyPackTest.MyPackTestA;"+ " - notice the path (subdirectories).", XPOS2 ); Show( "Instantiate: MyPackA() extends MyPackTestA as mpA.", XPOS1 ); MyPackA mpA = new MyPackA( this ); Show( "Finished MyPackA()", XPOS2 ); Show( "mpA.strPublic: " +mpA.strPublic, XPOS2 ); Show( "Variables: Look at code for Compile errors!", XPOS2 ); // Show( "mpA.strProtected: "+mpA.strProtected, XPOS2 ); //Compile errors! // Show( "mpA.strPackage: " +mpA.strPackage, XPOS2 ); //Compile errors! // Show( "mpA.strPrivate: " +mpA.strPrivate, XPOS2 ); //Compile errors! Show( "Methods: Look at code for Compile errors!", XPOS2 ); mpA.MyPackTestAPublic(); // mpA.MyPackTestAProtected(); //Compile errors! // mpA.MyPackTestAPackage(); //Compile errors! // mpA.MyPackTestAPrivate(); //Compile errors! Show("Finished: MyPackages",XPOS1); } //paint() //----------------------------------------------------------------------- void Show( String strMsg, int XPos ) { mpg.drawString( Integer.toString(intLineNum), XCol, YPos); mpg.drawString( strMsg, XCol+25+XPos, YPos); YPos += YSKIP; this.intLineNum++; } } //class Packages //*********************************************************************** class MyPackA extends MyPackTestA //*********************************************************************** { MyPackA( MyPackage mp ) { mp.Show( "MyPackA - strPublic: " +strPublic, mp.XPOS2 ); mp.Show( "MyPackA - strProtected: "+strProtected, mp.XPOS2 ); mp.Show( "MyPackA - Variables: Look at code for Compile errors!", mp.XPOS2 ); //2 Compile error! //mp.Show( "MyPackA - strPackage: " +strPackage, mp.XPOS2 ); //mp.Show( "MyPackA - strPrivate: " +strPrivate, mp.XPOS2 ); mp.Show( "MyPackA - Methods: Look at code for Compile errors!", mp.XPOS2 ); MyPackTestAPublic(); MyPackTestAProtected(); //MyPackTestAPackage(); //Compile error! //MyPackTestAPrivate(); //Compile error! } }