Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
41 views82 pages

Defining Classes and Methods

java
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views82 pages

Defining Classes and Methods

java
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 82

Defining Classes

and Methods
Chapter 5

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Objectives

• Describe concepts of class, class object


• Create class objects
• Define a Java class, its methods
• Describe use of parameters in a method
• Use modifiers public, private
• Define accessor, mutator class methods
• Describe information hiding, encapsulation
• Write method pre- and postconditions

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Objectives
• Describe purpose of javadoc
• Draw simple UML diagrams
• Describe references, variables, parameters of a class type

equals
• Define boolean-valued methods such as

• In applets use class Graphics, labels, init method

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Class and Method Definitions:
Outline
• Class Files and Separate Compilation
• Instance Variables
• Methods
• The Keyword this
• Local Variables
• Blocks
• Parameters of a Primitive Type

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Object-Oriented Programming (OOP)
Class and Method Definitions

• Java program consists of objects


• Objects of class types
• Objects that interact with one another
• Program objects can represent
• Objects in real world
• Abstraction
• an object is a thing, both tangible and intangible ( Student, Room,
Floor, Subject.)
• An object is comprised of data and operations that manipulate these
data.

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Class and Method Definitions

• UML, which stands for Unified Modeling Language.


• Figure 5.1 A class as a blueprint

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Class and Method Definitions
• Figure 5.1 ctd.

Objects that are


instantiations of the
class Automobile
JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Class and Method Definitions

• A class is a kind of mold or template that dictates what objects can


and cannot do. An object is called an instance of a class. An object is
an instance of exactly one class.
• Figure 5.2 A class outline as a UML class diagram

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Class Files and Separate Compilation

• Each Java class definition usually in a file by itself


• File begins with name of the class
• Ends with . java
• Class can be compiled separately
• Helpful to keep all class files used by a program in the same directory

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Dog class and Instance Variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Dog class and Instance Variables
• View sample program, listing 5.1
class Dog
• Note class has
• Three pieces of data (instance variables)
• Two behaviors
• Each instance of this type has its own copies of the data items
• Use of public
• No restrictions on how variables used
• Later will replace with private

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Using a Class and Its Methods

• View sample program, listing 5.2


class DogDemo

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Messages and Methods

• Message
• Method
• class and instance methods
• argument

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Messages and Methods

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Messages and Methods

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Methods

• When you use a method you "invoke" or "call" it


• Two kinds of Java methods
• Return a single item
• Perform some other action – a void method
• The method main is a void method
• Invoked by the system
• Not by the application program

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Methods

• Calling a method that returns a quantity


• Use anywhere a value can be used
• Calling a void method
• Write the invocation followed by a semicolon
• Resulting statement performs the action defined by the method

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Defining void Methods

• Consider method writeOutput from


Listing 5.1

• Method definitions appear inside class definition


• Can be used only with objects of that class

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Defining void Methods

• Most method definitions we will see as public


• Method does not return a value
• Specified as a void method
• Heading includes parameters
• Body enclosed in braces { }
• Think of method as defining an action to be taken

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Methods That Return a Value
• Consider method getAgeInHumanYears( )

• Heading declares type of value to be returned


• Last statement executed is return
JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Second Example – Species Class

• Class designed to hold records of endangered species


• View the class listing 5.3
class SpeciesFirstTry
• Three instance variables, three methods
• Will expand this class in the rest of the chapter
• View demo class listing 5.4
class SpeciesFirstTryDemo

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The Keyword this
• Referring to instance variables outside the class – must use
• Name of an object of the class
• Followed by a dot
• Name of instance variable
• Inside the class,
• Use name of variable alone
• The object (unnamed) is understood to be there

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The Keyword this

• Inside the class the unnamed object can be referred to with the
name this
• Example
this.name = keyboard.nextLine();
• The keyword this stands for the receiving object
• We will seem some situations later that require the this

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Local Variables

• Variables declared inside a method are called local variables


• May be used only inside the method
• All variables declared in method main are local to main
• Local variables having the same name and declared in different methods
are different variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Local Variables

• View sample file, listing 5.5A


class BankAccount
• View sample file, listing 5.5B
class LocalVariablesDemoProgram
• Note two different variables newAmount
• Note different values output

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Blocks
• Recall compound statements
• Enclosed in braces {}
• When you declare a variable within a compound statement
• The compound statement is called a block
• The scope of the variable is from its declaration to the end of the block
• Variable declared outside the block usable both outside and inside the
block

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Parameters of Primitive Type

• Recall method
declaration
in listing 5.3
• Note it only works for 10 years
• We can make it more versatile by giving the method a parameter to specify
how many years
• Note sample program, listing 5.6
class SpeciesSecondTry

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Parameters of Primitive Type
• Note the declaration
public int predictPopulation(int years)
• The formal parameter is years
• Calling the method
int futurePopulation =
speciesOfTheMonth.predictPopulation(10);
• The actual parameter is the integer 10
• View sample program, listing 5.7
class SpeciesSecondClassDemo

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Parameters of Primitive Type

• Parameter names are local to the method


• When method invoked
• Each parameter initialized to value in corresponding actual parameter
• Primitive actual parameter cannot be altered by invocation of the method
• Automatic type conversion performed
byte -> short -> int ->
long -> float -> double

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Information Hiding,
Encapsulation: Outline
• Information Hiding
• Pre- and Postcondition Comments
• The public and private Modifiers
• Methods Calling Methods
• Encapsulation
• Automatic Documentation with javadoc
• UML Class Diagrams

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Information Hiding

• Programmer using a class method need not know details of


implementation
• Only needs to know what the method does
• Information hiding:
• Designing a method so it can be used without knowing details
• Also referred to as abstraction
• Method design should separate what from how

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Pre- and Postcondition
Comments
• Precondition comment
• States conditions that must be true before method is invoked
• Example

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Pre- and Postcondition
Comments
• Postcondition comment
• Tells what will be true after method executed
• Example

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The public and private Modifiers

• Type specified as public


• Any other class can directly access that object by name
• Classes generally specified aspublic
• Instance variables usually not public
• Instead specify as private
• View sample code, listing 5.8
class SpeciesThirdTry

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

• Demonstration of need for private variables


• View sample code, listing 5.9
• Statement such as
box.width = 6;
is illegal since width is private
• Keeps remaining elements of the class consistent in this example

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

• Another implementation of a Rectangle class


• View sample code, listing 5.10
class Rectangle2
• Note setDimensions method
• This is the only way the width and height may be altered
outside the class

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Accessor and Mutator Methods

• When instance variables are private must provide methods to access


values stored there
• Typically named getSomeValue
• Referred to as an accessor method
• Must also provide methods to change the values of the private
instance variable
• Typically named setSomeValue
• Referred to as a mutator method

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Accessor and Mutator Methods

• Consider an example class with accessor and mutator methods


• View sample code, listing 5.11
class SpeciesFourthTry
• Note the mutator method
• setSpecies
• Note accessor methods
• getName, getPopulation,
getGrowthRate

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Accessor and Mutator Methods

• Using a mutator method


• View sample program, listing 5.12
classSpeciesFourthTryDemo

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

• A Purchase class
• View sample code, listing 5.13
class Purchase
• Note use of private instance variables
• Note also how mutator methods check for invalid values
• View demo program, listing 5.14
class purchaseDemo

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Methods Calling Methods

• A method body may call any other method


• If the invoked method is within the same class
• Need not use prefix of receiving object
• View sample code, listing 5.15
class Oracle
• View demo program, listing 5.16
class OracleDemo

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Methods Calling Methods

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Encapsulation

• Consider example of driving a car


• We see and use break pedal, accelerator pedal, steering wheel – know what
they do
• We do not see mechanical details of how they do their jobs
• Encapsulation divides class definition into
• Class interface
• Class implementation

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Encapsulation

• A class interface
• Tells what the class does
• Gives headings for public methods and comments about them
• A class implementation
• Contains private variables
• Includes definitions of public and private methods

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Encapsulation
• Figure 5.3 A well encapsulated class definition

Programmer
Programmerwho who
uses the class
uses the class

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Encapsulation
• Preface class definition with comment on how to use class
• Declare all instance variables in the class as private.
• Provide public accessor methods to retrieve data Provide
public methods manipulating data
• Such methods could include public mutator methods.
• Place a comment before each public method heading that
fully specifies how to use method.
• Make any helping methods private.
• Write comments within class definition to describe
implementation details.

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Automatic Documentation
javadoc
• Generates documentation for class interface
• Comments in source code must be enclosed in /** */
• Utility javadoc will include
• These comments
• Headings of public methods
• Output of javadoc is HTML format

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
UML Class Diagrams

• Recall Figure 5.2 A class outline as a UML class diagram

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
UML Class Diagrams

• Note
Figure 5.4
for the
Minus
Minussigns
signsimply
Purchase private
imply
privateaccess
access
class

Plus
Plussigns
signsimply
imply
public
publicaccess
access

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
UML Class Diagrams

• Contains more than interface, less than full implementation


• Usually written before class is defined
• Used by the programmer defining the class
• Contrast with the interface used by programmer who uses the class

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Objects and References:
Outline
• Variables of a Class Type
• Defining an equals Method for a Class
• Boolean-Valued Methods
• Parameters of a Class Type

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• All variables are implemented as a memory location


• Data of primitive type stored in the memory location assigned to the
variable
• Variable of class type contains memory address of object named by
the variable

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Object itself not stored in the variable


• Stored elsewhere in memory
• Variable contains address of where it is stored
• Address called the reference to the variable
• A reference type variable holds references (memory addresses)
• This makes memory management of class types more efficient

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Figure
5.5a
Behavior
of class
variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Figure
5.5b
Behavior
of class
variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Figure
5.5c
Behavior
of class
variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Figure
5.5d
Behavior
of class
variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Figure
5.6a
Dangers of
using ==
with objects

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Variables of a Class Type

• Figure
5.6b
Dangers of
using ==
with objects

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Defining an equals Method

• As demonstrated by previous figures


• We cannot use == to compare two objects
• We must write a method for a given class which will make the comparison as
needed
• View sample code, listing 5.17
class Species
• The equals for this class method used same way as
equals method for String

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Demonstrating an equals
Method
• View sample program, listing 5.18
class SpeciesEqualsDemo
• Note difference in the two comparison methods == versus
.equals( )

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Complete Programming Example
• View sample code, listing 5.19
class Species
• Figure 5.7
Class Diagram
for the class
Species
in listing 5.19

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Boolean-Valued Methods
• Methods can return a value of type boolean
• Use a boolean value in the return statement
• Note method from listing 5.19

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Unit Testing
• A methodology to test correctness of individual units of code
• Typically methods, classes
• Collection of unit tests is the test suite
• The process of running tests repeatedly after changes are make sure
everything still works is regression testing

View sample code, listing 5.20


class SpeciesTest
JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Parameters of a Class Type

• When assignment operator used with objects of


class type
• Only memory address is copied
• Similar to use of parameter of class type
• Memory address of actual parameter passed to formal
parameter
• Formal parameter may access public elements of the class
• Actual parameter thus can be changed by class methods

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

• View sample code, listing 5.21


class DemoSpecies
• Note different parameter types and results
• View sample program, listing 5.22
• Parameters of a class type versus parameters of a primitive type
class ParametersDemo

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Graphics Supplement: Outline

• The Graphics Class


• The init Methods
• Adding Labels to an Applet

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The Graphics Class
• An object of the Graphics class represents an area of the
screen
• Instance variables specify area of screen represented
• When you run an Applet
• Suitable Graphics object created automatically
• This object used as an argument in the paint method

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The Graphics Class
• Figure 5.8a Some methods in class Graphics

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The Graphics Class
• Figure 5.8b Some methods in class Graphics

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Programming Example

• Multiple faces – using a Helping method


• View sample code, listing 5.23
class MultipleFaces

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Graphics2D

• Java includes a Graphics2D class with more functionality than the


Graphics class
• Extends AWT
• Support for more geometric shapes
• Textures
• Gradients
• Font and shape properties
• Filtering
• Compositing
• Transforming
• Features that would be useful for rich media applications or video
games
• View sample program, listing 5.24, for reading an image file and
drawing it with transparency

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
The init Method
• Method init may be defined for any applet
• Like paint, method init called automatically when applet
is run
• Method init similar to method main in an application
program

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Adding Labels to Applet

• Provides a way to add text to an applet


• When component (such as a label) added to an applet
• Use method init
• Do not use method paint

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Adding Labels to Applet

• View sample applet, listing 5.25


class LabelDemo

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Summary

• Classes have
• Instance variables to store data
• Method definitions to perform actions
• Instance variables should be private
• Class needs accessor, mutator methods
• Methods may be
• Value returning methods
• Void methods that do not return a value

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Summary

• Keyword this used within method definition represents invoking


object
• Local variables defined within method definition
• Formal arguments must match actual parameters with respect to
number, order, and data type
• Formal parameters act like local variables

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Summary

• Parameter of primitive type initialized with value of


actual parameter
• Value of actual parameter not altered by method
• Parameter of class type initialized with address of
actual parameter object
• Value of actual parameter may be altered by method calls
• A method definition can include call to another
method in same or different class

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Summary

• Precondition comment states conditions that must


be true before method invoked
• Postcondition comment describes resulting effects
of method execution
• Utility program javadoc creates documentation
• Class designers use UML notation to describe
classes
• Operators = and == behave differently with objects
of class types (vs. primitive types)

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Summary

• Designer of class should include an equals


method
• Graphics drawn by applet normally done from
within paint
• Other applet instructions placed in init
• Parameter of paint is of type Graphics
• Method setBackground sets color of applet
pane
• Labels added to content pane within the init
method

JAVA: An Introduction to Problem Solving & Programming, 7th Ed. By Walter Savitch
ISBN 0133862119 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved

You might also like