What is a Package?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
seminar class
Active In SP
**

Posts: 5,361
Joined: Feb 2011
#1
17-02-2011, 11:02 AM



.docx   What is a Package.docx (Size: 51.93 KB / Downloads: 49)
What is a Package?
One of the many concerns that programmers face today is trying to ensure that their source code does not conflict with the source code of other programmers. A typical example is the case when two programmers define two distinct classes that have the same name. Suppose you decide to write a List class that keeps a sorted list of objects. This would inherently conflict with the List class in the Java API that is used to display a list of items in a Graphical User Interface. Java has a simple solution to this problem that is known as namespace management. Each programmer defines their own namespace and place their code within that namespace, thus two classes that have the exact same name are now distinguishable since they occur in different name spaces. Namespaces are called packages in Java.
Another important reason for using packages is that it provides programmers with greater control over their source code. It is typical to have a few thousand source files in medium to large scale applications, and trying to maintain them would be difficult at best, if not impossible. However, separating these source files into packages makes it much easier to manage the source code. What usually occurs is that related classes are grouped into a single package, for example, all the user interface classes of an application will be grouped into a package.
Access protection is another benefit of using packages. Suppose a group of different applications utilize the same set of source code, it would make sense to separate this source code and maintain it as a separate library that each application uses. In such a library, there is a public interface and a private interface. The public interface is those classes and methods that are accessible to the application using the library, while the private interface is not accessible to the application. Using a package makes it easier to define which classes form part of the public interface and which are part of the private interface. This makes it easy to control access to certain code sections.
Some of the benefits of using packages are:
It shows that the classes and interfaces in the package are related.
Often a group of classes and interfaces are related according to functionality so naturally they should be grouped into a package. An excellent example is the java.io package which groups a set of classes that all perform input and output functions.
You know where to find the classes you want if they're in a specific package.
If you are looking for a specific class and you know what functionality it provides you will naturally be able to find it in the right package. If you are looking for an InputStreamReader you will find it in the input and output package, ie: java.io
The names of your classes and interfaces won't be in conflict with those of other programmers.
If you decide to implement your own String class and you place it in a package it will be distinguishable from the java.lang.String class that comes with the Java API.
You can restrict the access to your classes.
When you only want your code or program to access certain code, for example in a library, then using packages makes access control to source code much easier.
Creating Packages
Creating a Java Package is relatively simple but may seem a bit confusing for people who have not done it before. There are two fundamental requirements for a package to exist:
• The package must contain one or more classes or interfaces. This implies that a package cannot be empty.
• The classes or interfaces that are in the package must have their source files in the same directory structure as the name of the package.
Naming Packages
Since packages are used to create namespaces that are used to prevent the problem of name conflicts, namespaces must be unique. This means that package names must be unique. Naming a package is therefore a very important aspect of creating a package.
Often organizations that are involved in software development will use their organi ation's domain name, since domain names by definition are unique. The domain name is inverted to make it easier to read. Good examples can be found from looking at the source code of the Apache Software Foundation, whose domain name is apache.org. All their code is placed into packages that have names beginning with org.apache.
Since the Apache Software Foundation has a number of sub-project and implimentations, each with its own web address, the project and implimentation name is also used in the package name. The Ant project and implimentation can be found at ant.apache.org, and it should be no surprise that their code is in the packages with names beginning with org.apache.ant.
When naming your package you should take your inverted domain name, if you have one, and add the project and implimentation name to it. This will ensure that you have a unique package name, since it is highly unlikely that your organization is working on two project and implimentations that have the exact same name. As an example: com.mycompany.myproject and implimentation
Some companies have decided to drop the top level domain (com, org, net, ...) from their package names for the sake of brevity, this is still perfectly acceptable: mycompany.mypackage
Declaring Package Members
The first thing to do when creating a package is to decide which classes and interfaces should belong to that package. Once you have decided that, you need to specify this by adding a package declaration to the source file of each class and interface that is a part of the package.
The declaration is simple, you use the package keyword followed by the package name. This declaration comes right at the top of the source file, before any import statements.
/*
* File comments...
*/

package com.mycompany.myproject and implimentation;

import java.util.*;

class MyClass {

}
Source and Class File Organization
One of the requirements for a package is that the source file should be contained in a directory structure that resembles the name of the package. This is simply creating a set of directories with the names given in the package name.
Take the package name and split it up according to where the periods (.) occur, for example, com.mycompany.myproject and implimentation can easily be split up into three components, namely: com, mycompany and myproject and implimentation. These will be the three directories that you create. The first directory will be the com directory and within this directory you will create a sub directory namely the mycompany directory and within that directory a sub directory, namely the myproject and implimentation directory.
Finally, all the source files that are part of the package will go into the myproject and implimentation directory.
It is typical in many java project and implimentation to have the source code go into a src directory and when it is compiled, the resulting byte code goes into a classes directory. The package directories will therefore go into the src directory. As an example, consider a class named MyClass in the package named com.mycompany.myproject and implimentation and all source code in the src directory. The following picture depicts this situation clearly:
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page

Quick Reply
Message
Type your reply to this message here.


Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  Pen-style Personal Networking Gadget Package project girl 0 339 23-01-2013, 03:44 PM
Last Post: project girl
  Red Hat Package Manager (RPM) seminar tips 0 303 03-12-2012, 05:16 PM
Last Post: seminar tips
  Pen-style Personal Networking Gadget Package full report seminar tips 0 442 09-11-2012, 02:18 PM
Last Post: seminar tips
  Pen-style Personal Networking Gadget Package Report project girl 0 374 07-11-2012, 06:15 PM
Last Post: project girl
  A Review of the java.util Package seminar paper 0 408 23-03-2012, 10:46 AM
Last Post: seminar paper