Programming in Java - 10 -Packages

19
© 2011 BlueSignet LLC. All rights reserved. Programming in Java Packages

description

Java

Transcript of Programming in Java - 10 -Packages

  • 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!