21
Applying OO Concepts Using Java

Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

Applying OO Concepts Using Java

Page 2: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 3: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 4: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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.

Page 5: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 6: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 7: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

Example ofOverloading a Constructor

• public class Employee { public Employee (String n, double a) { name = n; salary = a; } public Employee ( ) { name = “ “; salary = 0; }}

Page 8: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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; }

• Be careful not to return mutatable objects in your accessor methods. Why is this important?

Page 9: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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.

Page 10: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 11: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 12: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

• 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

Page 13: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

The Import Statement and Using Pre-written Classes

• To use any of the prewritten classes (other than java.lang):– Import the classOR– 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

Page 14: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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?

Page 15: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

Packages and theProtected 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

Page 16: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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 { ... }

Page 17: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

Page 18: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

Compiling and ExecutingUsing 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

Page 19: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

Setting the Classpath

• When using packages or classes outside the java. packages, you need to modify the classpath.

• What is the classpath?– It is a environment variable that points the jvm to the needed class files.

• How do you set the classpath?– You can set it using the -classpath option in the javac or java command.

• This is temporary. You will need to do this every time you use those commands.

• e.g. javac -classpath c:\user\classdir PackageTest.java java -classpath c:\user\classdir PackageTest

– Another way is to modify the environment variable on your machine.• e.g. SET CLASSPATH=c:\com\MC697

• Different operating systems have different ways of setting this variable.

• See pg. 137 in book for examples of how to set this on different platforms.

Page 20: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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.

• You can point your classpath variable to jar’s that contain needed classes.– e.g. SET CLASSPATH=c:\j2sdk1.4.1\jre\lib\rt.jar;%CLASSPATH%

Page 21: Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The

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

– See pg. 139 in book for more information