0% found this document useful (0 votes)
12 views59 pages

Chap 06ed8

Uploaded by

astro2022k
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)
12 views59 pages

Chap 06ed8

Uploaded by

astro2022k
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/ 59

More About Objects and

Methods
Chapter 6

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Objectives
• Define and use constructors
• Write and use static variables and methods
• Use methods from class Math
• Use predefined wrapper classes
• Use stubs, drivers to test classes and programs

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Objectives
• Write and use overloaded methods
• Define and use enumeration methods
• Define and use packages and import statements
• Add buttons and images to JavaFX applications

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Constructors: Outline

• Defining Constructors
• Calling Methods from Constructors
• Calling a Constructor from Other Constructors

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Defining Constructors
• A special method called when instance of an object created with new
• Create objects
• Initialize values of instance variables
• Can have parameters
• To specify initial values if desired
• May have multiple definitions
• Each with different numbers or types of parameters

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Defining Constructors

• Example class to represent pets


• Figure 6.1 Class Diagram for Class Pet

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Defining Constructors
• Note sample code, listing 6.1
class Pet
• Note different constructors
• Default
• With 3 parameters
• With String parameter
• With double parameter
• Note sample program, listing 6.2
class PetDemo

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Defining Constructors

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Defining Constructors

• Constructor without parameters is the default constructor


• Java will define this automatically if the class designer does not define any
constructors
• If you do define a constructor, Java will not automatically define a default
constructor
• Usually default constructors not included in class diagram

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Defining Constructors
• Figure 6.2 A constructor
returning a reference

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Calling Methods from Other Constructors
• Constructor can call other class methods

• View sample code, listing 6.3


class Pet2
• Note method set
• Keeps from repeating code

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Calling Constructor from Other Constructors

• From listing 6.3 we have the initial constructor and method set
• In the other constructors use the this reference to call initial
constructor
• View revised class, listing 6.4
class Pet3
• Note calls to initial constructor

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Static Variables & Methods: Outline
• Static Variables
• Static Methods
• Dividing the Task of a main Method into Subtasks
main Method to a class
• Adding a

• The Math Class


• Wrapper Classes

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Static Variables
• Static variables are shared by all objects of a class
• Variables declared static final are considered constants – value cannot
be changed
• Variables declared static (without final) can be changed
• Only one instance of the variable exists
• It can be accessed by all instances of the class

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Static Variables

• Static variables also called class variables


• Contrast with instance variables
• Do not confuse class variables with variables of a class type
• Both static variables and instance variables are sometimes called
fields or data members

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Static Methods

• Some methods may have no relation to any type of object


• Example
• Compute max of two integers
• Convert character from upper- to lower case
• Static method declared in a class
• Can be invoked without using an object
• Instead use the class name

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Static Methods

• View sample class, listing 6.5


class DimensionConverter
• View demonstration program, listing 6.6
class DimensionConverterDemo

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Mixing Static and Nonstatic Methods

• View sample class, listing 6.7


class SavingsAccount
• View demo program, listing 6.8
class SavingsAccountDemo

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Tasks of main in Subtasks
• Program may have
• Complicated logic
• Repetitive code
• Create static methods to accomplish subtasks
• Consider example code, listing 6.9
a main method with repetitive code
• Note alternative code, listing 6.10
uses helping methods

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Adding Method main to a Class

• Method main used so far in its own class within a


separate file
• Often useful to include method main within class
definition
• To create objects in other classes
• To be run as a program
• Note example code, listing 6.11
a redefined class Species
• When used as ordinary class, method main ignored

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
The Math Class
• Provides many standard mathematical methods
• Automatically provided, no import needed
• Example methods, figure 6.3a

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
The Math Class

• Example methods, figure 6.3b

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Random Numbers

• Math.random()returns a random double that is greater than or


equal to zero and less than 1
• Java also has a Random class to generate random numbers
• Can scale using addition and multiplication; the following simulates
rolling a six sided die
int die = (int) (6.0 * Math.random()) + 1;

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Wrapper Classes

• Recall that arguments of primitive type treated differently from


those of a class type
• May need to treat primitive value as an object
• Java provides wrapper classes for each primitive type
• Methods provided to act on values

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Wrapper Classes
• Allow programmer to have an object that corresponds to value of
primitive type
• Contain useful predefined constants and methods
• Wrapper classes have no default constructor
• Programmer must specify an initializing value when creating new object
• Wrapper classes have no set methods

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Wrapper Classes
• Figure 6.4a Static methods in class Character

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Wrapper Classes
• Figure 6.4b Static methods in class Character

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Writing Methods: Outline

• Case Study: Formatting Output


• Decomposition
• Addressing Compiler Concerns
• Testing Methods

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Formatting Output
Algorithm to display a double amount as dollars and cents
1.dollars = the number of whole dollars in amount.
2. cents = the number of cents in amount. Round if there
are more than two digits after the decimal point.
3. Display a dollar sign, dollars, and a decimal point.
4. Display cents as a two-digit integer.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Formatting Output

• View sample code, listing 6.12


class DollarFormatFirstTry
• Note code to separate dollars and cents
• Note if-else statement
• View sample program, listing 6.13
class DollarFormatFirstTryDriver
• Note call to the write method

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Formatting Output

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Formatting Output

• View corrected code, listing 6.14


class DollarFormat
• Note code to handle negative values
• Program in listing 6.13 will now print values correctly

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Decomposition

• Recall pseudocode from previous slide


• With this pseudocode we decompose the task into subtasks
• Then solve each subtask
• Combine code of subtasks
• Place in a method

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Addressing Compiler Concerns

• Compiler ensures necessary tasks are done


• Initialize variables
• Include return statement
• Rule of thumb: believe the compiler
• Change the code as requested by compiler
• It is most likely correct

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Testing Methods

• To test a method use a driver program


• Example – code in listing 6.13
• Every method in a class should be tested
• Bottom-up testing
• Test code at end of sequence of method calls first
• Use a stub – simplified version of a method for testing purposes

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Overloading: Outline

• Overloading Basics
• Overloading and Automatic Type Conversion
• Overloading and the Return Type
• Programming Example: A Class for Money

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Overloading Basics

• When two or more methods have same name within the same class
• Java distinguishes the methods by number and types of parameters
• If it cannot match a call with a definition, it attempts to do type conversions
• A method's name and number and type of parameters is called the
signature

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Overloading Basics

• View example program, listing 6.15


class Overload
• Note overloaded method getAverage

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Overloading and Type Conversion
• Overloading and automatic type conversion can
conflict
• Recall definition of Pet class of listing 6.1
• If we pass an integer to the constructor we get the
constructor for age, even if we intended the constructor
for weight
• Remember the compiler attempts to overload
before it does type conversion
• Use descriptive method names, avoid overloading

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Overloading and Return Type

• You must not overload a method where the only difference is the
type of value returned

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Programming Example

• A class for money


• View sample class, listing 6.16
class Money
• Note use of
• Private instance variables
• Methods to set values
• Methods for doing arithmetic operations

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Programming Example

• View demo program, listing 6.17


class MoneyDemo

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Information Hiding Revisited

Privacy Leaks
• Instance variable of a class type contain address
where that object is stored
• Assignment of class variables results in two
variables pointing to same object
• Use of method to change either variable, changes the
actual object itself
• View insecure class, listing 6.18
class petPair

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Information Hiding Revisited
• View sample
program,
Sample
Sample
listing 6.19
screen
screen
class Hacker output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Enumeration as a Class
• Consider defining an enumeration for
suits of cards
enum Suit {CLUBS, DIAMONDS, HEARTS, SPADES}
• Compiler creates a class with methods
• equals
• compareTo
• ordinal
• toString
• valueOf

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Enumeration as a Class

• View enhanced enumeration, listing 6.20


enum Suit
• Note
• Instance variables
• Additional methods
• Constructor

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Packages: Outline

• Packages and Importing


• Package Names and Directories
• Name Clashes

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Packages and Importing

• A package is a collection of classes grouped


together into a folder
• Name of folder is name of package
• Each class
• Placed in a separate file
• Has this line at the beginning of the file
package Package_Name;
• Classes use packages by use of import statement

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Package Names and Directories

• Package name tells compiler path name for directory containing


classes of package
• Search for package begins in class path base directory
• Package name uses dots in place of / or \
• Name of package uses relative path name starting from any directory
in class path

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Package Names and Directories

• Figure 6.5 A package name

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Name Clashes

• Packages help in dealing with name clashes


• When two classes have same name
• Different programmers may give same name to two classes
• Ambiguity resolved by using the package name

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Graphics Supplement: Outline

• Adding buttons
• Adding button images

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Adding Buttons

• Create object of type Button


• Then add to the scene
• Buttons don’t do anything yet when clicked, this is covered in the
chapter 8

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Adding Buttons

• Application Output

IfIfthe
theuser
userclicks
clickseither
eitherof
of
these
thesebuttons,
buttons,nothing
nothing
happens.
happens.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Adding Images

• An image is a picture
• Can load an image stored in standard formats by creating an Image
object and sending in the pathname to the file
Image img = new Image(“pathname-to-image-file“);
• Image can be added to other components, such as a button
btn.setGraphic(new ImageView(img));

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Button Image Demo

• View button image demo, listing 6.22


class IconDemo
• Note
• Creation of image
• Attaching
image to button

Sample
Sample
screen
screen
output
output
JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Summary

• Constructor method creates, initializes object of a class


• Default constructor has no parameters
• Within a constructor use this as name for another constructor in
same class
• A static variable shared by all objects of the class

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Summary

• Primitive type has wrapper class to allow treatment as an object


• Java performs automatic type cast between primitive type and object
of wrapper class as needed
• Divide method tasks into subtasks
• Test all methods individually

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Summary

• Methods with same name, different signatures are overloaded


methods
• An enumeration is a class – can have instance variables, constructors,
methods
• A package of class definitions grouped together in same folder,
contain a package statement at beginning of each class

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved

You might also like