© 2011 BlueSignet LLC. All rights reserved. Programming in Java Packages
Nov 16, 2015
2011 BlueSignet LLC. All rights reserved.
Programming in JavaPackages
2011 BlueSignet LLC. All rights reserved.
Packages
In Java, packages are a collection of classes Sort of like a namespace
Behaves the same way
Classes are declared as part of a package Packages can be broken part by sub packaging Many Java developers believe that all your code
should belong to a package
2011 BlueSignet LLC. All rights reserved.
How to make a package?
Think of this as a namespace Insert a package statement at the top of the code
file(s) Any code file that is using the entities within a
package must either import the package, or reference the class through the package
2011 BlueSignet LLC. All rights reserved.
Recall the Person and Employee classes
// Person.javaimport java.util.Date;class Person{
/* Protected Fields */protected String _firstName = "";protected String _lastName = "";/* Private Fields */protected Date _birthDate = new Date();/* Public Fields */public static int _population = 0;/* Constructors */public Person() { _population++; }public Person(String lastName, String firstName){
_lastName = lastName;_firstName = firstName;_population++;
}/* Private Methods */public static int getPopulation() { return _population; }/* Public Methods -- Getters */public String getFirstName() { return _firstName; }public String getLastName() { return _lastName; }public Date getBirthDate() { return _birthDate; }/* Public Methods -- Setters */public void setFirstName(String firstName){ _firstName = firstName ; }public void setLastName(String lastName) { _lastName = lastName; }
}
// Employee.javaimport java.util.Date;class Employee extends Person{
private String _jobTitle = "";private String _jobTitlePrefix = "";private String _department = "";private double _salary = 0.0;private Date _hireDate = null;private Date _terminationDate = null;
public Employee(Person p){
this.setFirstName(p.getFirstName());this.setLastName(p.getLastName());this._birthDate = p._birthDate;
}
public void setJobTitle(String jobTitle){ _jobTitle = jobTitle; }public void setJobTitlePrefix(String jobTitlePrefix){ _jobTitlePrefix = jobTitlePrefix; }public void setDepartment(String department){ _department = department; }public void setSalary(double salary){ _salary = salary; }public void setHireDate(Date hireDate){ _hireDate = hireDate; }public void setTerminationDate(Date terminationDate){ _terminationDate = terminationDate; }
public String getJobTitle() { return _jobTitle; }public String getJobTitlePrefix() { return _jobTitlePrefix; }public String getDepartment() { return _department; }public double getSalary() { return _salary; }public Date getHireDate() { return _hireDate; }public Date getTerminationDate() { return _terminationDate; }
}
2011 BlueSignet LLC. All rights reserved.
Recall the Person and Employee classes
// Person.javaimport java.util.Date;public class Person{
/* Protected Fields */protected String _firstName = "";protected String _lastName = "";/* Private Fields */protected Date _birthDate = new Date();/* Public Fields */public static int _population = 0;/* Constructors */public Person() { _population++; }public Person(String lastName, String firstName){
_lastName = lastName;_firstName = firstName;_population++;
}/* Private Methods */public static int getPopulation() { return _population; }/* Public Methods -- Getters */public String getFirstName() { return _firstName; }public String getLastName() { return _lastName; }public Date getBirthDate() { return _birthDate; }/* Public Methods -- Setters */public void setFirstName(String firstName){ _firstName = firstName ; }public void setLastName(String lastName) { _lastName = lastName; }
}
// Employee.javaimport java.util.Date;public class Employee extends Person{
private String _jobTitle = "";private String _jobTitlePrefix = "";private String _department = "";private double _salary = 0.0;private Date _hireDate = null;private Date _terminationDate = null;
public Employee(Person p){
this.setFirstName(p.getFirstName());this.setLastName(p.getLastName());this._birthDate = p._birthDate;
}
public void setJobTitle(String jobTitle){ _jobTitle = jobTitle; }public void setJobTitlePrefix(String jobTitlePrefix){ _jobTitlePrefix = jobTitlePrefix; }public void setDepartment(String department){ _department = department; }public void setSalary(double salary){ _salary = salary; }public void setHireDate(Date hireDate){ _hireDate = hireDate; }public void setTerminationDate(Date terminationDate){ _terminationDate = terminationDate; }
public String getJobTitle() { return _jobTitle; }public String getJobTitlePrefix() { return _jobTitlePrefix; }public String getDepartment() { return _department; }public double getSalary() { return _salary; }public Date getHireDate() { return _hireDate; }public Date getTerminationDate() { return _terminationDate; }
}
2011 BlueSignet LLC. All rights reserved.
Recall the Person and Employee classes
// Person.javapackage person;import java.util.Date;public class Person{
/* Protected Fields */protected String _firstName = "";protected String _lastName = "";/* Private Fields */protected Date _birthDate = new Date();/* Public Fields */public static int _population = 0;/* Constructors */public Person() { _population++; }public Person(String lastName, String firstName){
_lastName = lastName;_firstName = firstName;_population++;
}/* Private Methods */public static int getPopulation() { return _population; }/* Public Methods -- Getters */public String getFirstName() { return _firstName; }public String getLastName() { return _lastName; }public Date getBirthDate() { return _birthDate; }/* Public Methods -- Setters */public void setFirstName(String firstName){ _firstName = firstName ; }public void setLastName(String lastName) { _lastName = lastName; }
}
// Employee.javapackage person;import java.util.Date;public class Employee extends Person{
private String _jobTitle = "";private String _jobTitlePrefix = "";private String _department = "";private double _salary = 0.0;private Date _hireDate = null;private Date _terminationDate = null;
public Employee(Person p){
this.setFirstName(p.getFirstName());this.setLastName(p.getLastName());this._birthDate = p._birthDate;
}
public void setJobTitle(String jobTitle){ _jobTitle = jobTitle; }public void setJobTitlePrefix(String jobTitlePrefix){ _jobTitlePrefix = jobTitlePrefix; }public void setDepartment(String department){ _department = department; }public void setSalary(double salary){ _salary = salary; }public void setHireDate(Date hireDate){ _hireDate = hireDate; }public void setTerminationDate(Date terminationDate){ _terminationDate = terminationDate; }
public String getJobTitle() { return _jobTitle; }public String getJobTitlePrefix() { return _jobTitlePrefix; }public String getDepartment() { return _department; }public double getSalary() { return _salary; }public Date getHireDate() { return _hireDate; }public Date getTerminationDate() { return _terminationDate; }
}
2011 BlueSignet LLC. All rights reserved.
Driver Code
// MainClass.javaimport person.*;class MainClass{
public static void main(String[] args){Employee em = new Employee(new Person(".Net", "WiBit"));System.out.println(em.getFirstName() + em.getLastName());
}
}
2011 BlueSignet LLC. All rights reserved.
Class Path
Java uses an environment variable called CLASSPATH to seek java classes
Classes in a package should be contained within the same directory
This directory should be in a directory path dedicated for classes
2011 BlueSignet LLC. All rights reserved.
Create Package
Create root class directory C:\WiBit.Net\Java\Classes
If not already, add this root class directory to the CLASSPATH environment variable (; delimited)
Create directory for person package C:\WiBit.Net\Java\Classes\person
Put Person.java and Employee.java in the person package directory
2011 BlueSignet LLC. All rights reserved.
Create Package - Create root class directory
>_C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Create Package - Set Class Path (Not Set)
>echo %CLASSPATH%%CLASSPATH%
>_
C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Create Package - Set Class Path (Not Set)
>echo %CLASSPATH%%CLASSPATH%
>set CLASSPATH=.;C:\WiBit.Net\Java\Classes
>echo %CLASSPATH%.;C:\WiBit.Net\Java\Classes
>_
C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Create Package - Compile Person Package
C:\WiBit.Net\Java\Src>_C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Create Package - Compile Person Package
C:\WiBit.Net\Java\Src>dir *.javaVolume in drive C has no label.Volume Serial Number is FA71-1060
Directory of C:\WiBit.Net\Java\Src
04/30/2011 03:38 PM 211 MainClass.java1 File(s) 211 bytes0 Dir(s) 146,006,347,776 bytes free
C:\WiBit.Net\Java\Src>_
C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Create Package - Compile Person Package
C:\WiBit.Net\Java\Src>dir *.javaVolume in drive C has no label.Volume Serial Number is FA71-1060
Directory of C:\WiBit.Net\Java\Src
04/30/2011 03:38 PM 211 MainClass.java1 File(s) 211 bytes0 Dir(s) 146,006,347,776 bytes free
C:\WiBit.Net\Java\Src>javac MainClass.java
C:\WiBit.Net\Java\Src>_
C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Create Package - Compile Person Package
C:\WiBit.Net\Java\Src>dir *.javaVolume in drive C has no label.Volume Serial Number is FA71-1060
Directory of C:\WiBit.Net\Java\Src
04/30/2011 03:38 PM 211 MainClass.java1 File(s) 211 bytes0 Dir(s) 146,006,347,776 bytes free
C:\WiBit.Net\Java\Src>javac MainClass.java
C:\WiBit.Net\Java\Src>java MainClassWiBit.Net
C:\WiBit.Net\Java\Src>_
C:\
WiBit.Net
Java
Classes
Person.java
Employee.java
Src
MainClass.java
person
2011 BlueSignet LLC. All rights reserved.
Access the Packaged Classes
class MainClass
{
public static void main(String[] args)
{
person.Employee em =
new person.Employee(new person.Person(".Net", "WiBit"));
System.out.println(em.getFirstName() +
em.getLastName());
}
}
2011 BlueSignet LLC. All rights reserved.
Access the Packaged Classes
import person.Employee;
import person.Person;
class MainClass
{
public static void main(String[] args)
{
Employee em = new Employee(new Person(".Net", "WiBit"));
System.out.println(em.getFirstName() +
em.getLastName());
}
}
2011 BlueSignet LLC. All rights reserved.
The End?Thank You For Watching!