Tuesday, 28 August 2012

Java Package


Hi there......
Java provides a mechanism for partitioning the class name space into more manageable chunks. This mechanism is the package. The package is both a naming and a visibility control mechanism. You can define classes inside a package that are not accessible by code outside that package.
To create a package is quite easy: simply include a package command as the first
statement in a Java source file. Any classes declared within that file will belong to the
specified package. The package statement defines a name space in which classes are
stored. If you omit the package statement, the class names are put into the default
package, which has no name.
  • Package name must be saved in same name folder
  • One package can comprise more than one class
  • Java source code and class should be saved in same folder as package name
  • One Java source file can include only one public class
  • For make more than one class in same package every java source file must be saved in separate file
  •  Java source file class should be public visibility otherwise class'll not be available for outside of package
package demo;
public class Myclass
{
        public void show()
        {
              System.out.println("Package function");
        }

when you will compile this file then it will create a class file named Myclass  you  must save this file in demo  named folder.Ones everything gos ok then you are ready to use this file.. consider following code where i am using this...
import demo.Myclass ;
//import demo.*;   for import all class in demo package
class MainFile
{
      public static void main(String args[])
      {
             Myclass ob=new Myclass();
             ob.show();
       }
}

A package can be nested like java.awt.event as i discussed above that every package should be save in same name folder so you will have to a folder in your current folder named as you want for package

package demo.demo2;
public class Myclass
{
       public void show()
       {
             System.out.println("Function from demo 2 package");
        }
}

You must make a folder named demo2 in demo folder.You can make more nested package as you want you just have make a folder.When user will use such package they'll have to provide all heir achy of package in this case it will be
import demo.demo2.*;
class packdemo
{
    public void show()
    {
         System.out.println("Nested package function");
     }
}
  • When you save this package in Bin folder then you can use (javac) for compile
  • If your package folder is outside of bin folder then you can use ( javac -classpath <java sourcefile>)
  • -classspath will search your package class file