Document 557001

Download Report

Transcript Document 557001

In this class, we will cover:
 Overriding a method
 Overloading a method
 Constructors
 Mutator and accessor methods
 The import statement and using prewritten classes
 Packages and the protected access modifier
 The finalize() method
Overriding a Method
Overriding:
 If you declare a variable within a class, and use the
same variable name within a method of the class,
then the variable used inside the method takes
precedence, or overrides, the first variable
Overloading a Method
Overloading:
 Involves using one term to indicate diverse
meanings
 Writing multiple methods with the same name,
but with different arguments
 Overloading a Java method means you write
multiple methods with a shared name
 This is polymorphism in action.
Constructors
 Constructors are a special type of method.
 Used to create an instance of the class.
 e.g. Employee e = new Employee( );
This calls the Employee constructor.
 Java automatically provides a constructor method when
you create a class
 Programmers can write their own constructor classes
 Programmers can also write constructors that receive
arguments
 Such arguments are often used for initialization
purposes when values of objects might vary
Overloading Constructors
 If you create a class from which you instantiate
objects, Java automatically provides a constructor
 But, if you create your own constructor, the
automatically created constructor no longer exists
 As with other methods, you can overload
constructors
 Overloading constructors provides a way to create
objects with or without initial arguments, as needed
Example of
Overloading a Constructor
 public class Employee
{
public Employee (String n, double a)
{
name = n;
salary = a;
}
public Employee ( )
{
name = “ “;
salary = 0;
}
}
Mutator and Accessor Methods
 Often referred to as get/set methods.
 Mutator methods modify fields in a class.
 Example:
public void setName (String n)
{
empName = n;
}
 Accessor methods retrieve fields in a class
 Example:
public String class getName ()
{
return empName;
}
Mutator and Accessor Methods
 Returning mutatable objects in public accessor methods
breaks encapsulation!!!!
 Even if the data element is private, outside classes can now
modify it.
 You should return immutable objects (Strings, ints, etc).
 If you must return a reference to a mutatable object, you
should clone it first.
 See pg. 112 in book for example of this rogue code.
The finalize() Method
 Inherited from the Object class.
 Called by the VM before an object is destroyed and it’s
memory is released
 Use it to release resources that might not otherwise be
released (e.g. files)
 Use it to record the fact that an object has been destroyed
The Import Statement and
Using Pre-written Classes
 The creators of Java wrote nearly 500 classes
 For example:

System, Character, Boolean, Byte, Short, Integer, Long, Float,
and Double are classes
 These classes are stored in packages, or a library
of classes, which is a folder that provides a
convenient grouping for classes
The Import Statement and
Using Pre-written Classes
 java.lang – The package that is implicitly
imported into every Java program and contains
fundamental classes, or basic classes
 Fundamental classes include:
 System, Character, Boolean, Byte, Short, Integer,
Long, Float, and Double
 Optional classes – Must be explicitly named
The Import Statement and
Using Pre-written Classes
 To use any of the prewritten classes (other than java.lang):
 Import the class
OR
 Import the package which contains the class you are using
 To import an entire package of classes use the wildcard
symbol - *

For example:
import java.util.*; //imports all java.util classes
 import java.util.Vector; //imports the Vector class
 Represents all the classes in a package

Packages
 Creating packages encourages others to reuse software
because it makes it convenient to import many related
classes at once
 Packages are used to:
 maintain the uniqueness of class names


Using Packages in your programs prevent class name scope conflicts if
multiple classes of the same name are used.
e.g. both java.util and java.sql have a Date class, so if you are using both
packages you need to reference with java.util.Date or java.sql.Date.
 group classes to make them more easily accessible to your classes
 reference classes in a particular scope

What access modifier helps you limit access to packages?
Packages and the
Protected Access Modifier
 the protected access modifier:
 Provides you with an intermediate level of security between
public and private access
 Is used to limit access to classes within the same package
 If you create a protected data field or method, it can be
used:




within its own class
in any classes extended from that class
or in classes in the same package
but it cannot be used by “outside” classes
Putting Your Class in a Package
 To include your class into a package, use the package
statement
 The package statement must appear outside the class definition
 The package statement looks like this:


package <name of package>;
example: package MC697;
class Person {
...
}
Packages and Directory Structure
 Packages map to the directory structure.
 Example:
package com.MC697;
public class Test {
public static void main (String[] args) {
System.out.println(“Testing packages”);
}
}
 This package statement maps to the directory:
<base directory>/com/MC697
where base directory is the directory you are going to compile and
execute the class file from
Compiling and Executing
Using Packages
 When using packages you must compile and run from the
base directory.
 So, let’s say c:\temp is the base directory we want to use.
The file in the example should be saved to
c:\temp\com\MC697\Test.java.
 To compile:
 cd to c:\temp
javac com/MC697/Test.java
 To execute:
 cd to c:\temp
java com.MC697.Test
JAR Files
 Jar files are Java’s version of the zip file.
 They group packages and class files together in a unit to
make it easier to deploy.
 Can be viewed using Winzip or similar utility.
Javadocs
 Javadocs are documentation for class files.
 Javadoc is a utility built into the sdk to automatically build
documentation from the java files.
 e.g. javadoc VectorDemo.java
 Remember the /** …. */ documentation symbols?
 These are used to denote documentation comments.
 Put these before a method or field to include comments about these in
the javadocs.
 Special tags can be used:



@author
@version
@param for methods
21
22
23