java classes introduction and chapter 1 slides by steve armstrong letourneau university longview, tx...
Post on 22-Dec-2015
225 views
TRANSCRIPT
![Page 1: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/1.jpg)
Java Classes
Introduction andChapter 1
Slides by Steve ArmstrongLeTourneau University
Longview, TX2007,Prentice Hall
![Page 2: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/2.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Chapter Contents
• Introduction• Objects and Classes• Using the Methods in a Java Class
References and Aliases• Defining a Java Class• Method Definitions
Arguments and Parameters Passing Arguments A Definition of the Class Name Constructors The Method toString . . .
![Page 3: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/3.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Chapter Contents
• . . . Method Definitions – ctd. Methods That Call Other Methods Methods That Return an Instance of Their Class Static Fields and Methods Overloading Methods
• Enumeration as a Class• Packages
The Java Class Library
![Page 4: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/4.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Organizing Our Lives
• For each of the above examples, consider how the objects are organized
![Page 5: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/5.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Organizing Computer Data
• Computer stores/organizes items in similar manners as the examples
• Ways of organizing data are represented by Abstract Data Types (ADTs)
• An ADT specifies data that is stored operations that can be done on the data
![Page 6: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/6.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
ADT Terminology
• Data structure: implementation of an ADT within a programming language
• Collection: an ADT that contains a group of objects
• Container: a class that implements the collection
• These last two terms are sometimes used interchangeably
![Page 7: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/7.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Types of ADTs
• Bag Unordered collection, may contain duplicates
• List A collection that numbers its items
• Stack Orders items chronologically Last In, First out
• Queue Orders items chronologically First in, First out
Match each of these to the pictures ?
Click here to return to pictures
Match each of these to the pictures ?
Click here to return to pictures
![Page 8: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/8.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Types of ADTs
• Dictionary Pairs of items – one is a key Can be sorted or not
• Tree Arranged in a hierarchy
• Graph Generalization of a tree
Match each of these to the pictures ?
Click here to return to pictures
Match each of these to the pictures ?
Click here to return to pictures
![Page 9: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/9.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Objects and Classes 1
• An object is a program construct Contains data Performs actions
• Objects interact to solve problems
• Actions performed by objects are defined by methods
![Page 10: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/10.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Objects and Classes
• A class is a kind of object
• A class definition isa general description of what the object is what it can do
![Page 11: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/11.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Objects and Classes
• All objects in the same class have the same kinds of data the same methods
![Page 12: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/12.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Using the Methods in a Java Class 2
• Given a class called Name Declare a variable
Name joe; Create an instance of Name
joe = new Name(); Alternatively
Name joe = new Name();
![Page 13: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/13.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
• void methods are used to do a task such as set the first or last names
• valued methods return a single value
Using the Methods in a Java Class 3
![Page 14: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/14.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
References and Aliases 4
• Primitive data types byte short int long
• All other data types are reference or class types• A reference variable contains address of
(reference to) location in memory of an object
float double char boolean
![Page 15: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/15.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
References and Aliases
• Consider the results of the code below:
![Page 16: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/16.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Defining a Java Class 5
Data membersData members
Access or visibility modifiers
Specifies where a class, data field, or method can be used.
Access or visibility modifiers
Specifies where a class, data field, or method can be used.
![Page 17: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/17.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Defining a Java Class
Methods that classes often use:
• Accessor (query) methods – return value of a data field
• Mutator methods – change the value of a data field
Methods that classes often use:
• Accessor (query) methods – return value of a data field
• Mutator methods – change the value of a data field
![Page 18: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/18.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Method Definitions 7
• General form of method definition
Examples
![Page 19: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/19.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Method Definitions 10
• Note incorrect, ambiguous use of identifier first
• Solvable by use of this this.first refers
to data member Note: possible
but not typical
public void setFirst(String first){ first = first;} // end setFirst
public void setFirst(String first){ first = first;} // end setFirst
data object first
parameter first
public void setFirst(String first){ this.first = first;} // end setFirst
public void setFirst(String first){ this.first = first;} // end setFirst
![Page 20: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/20.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Arguments and Parameters 12
• Consider statements:
• Arguments/parameters in call match in number and type to formal parameters in definition
Name joe = new Name();joe.setFirst("Joseph");joe.setLast("Brown");
Name joe = new Name();joe.setFirst("Joseph");joe.setLast("Brown");
public void setFirst(String firstName){ first = firstName;} // end setFirst
public void setFirst(String firstName){ first = firstName;} // end setFirst
![Page 21: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/21.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Passing Arguments 13
• When formal parameter is primitive type parameter in method initialized by value can be constant or variable
public void setMiddleInitial(char middleInitial){ initial = middleInitial;} // end setMiddleInitial
public void setMiddleInitial(char middleInitial){ initial = middleInitial;} // end setMiddleInitial
joe.setMiddleInitial('Q');joe.setMiddleInitial('Q');
![Page 22: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/22.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Passing Arguments 14
• When a formal parameter has a class type
Formal parameter initialized with memory address of object passed to it.
public void giveLastNameTo(Name child){child.setLast(last);} // end giveLastNameTo
public void giveLastNameTo(Name child){child.setLast(last);} // end giveLastNameTo
jamie.giveLastNameTo(jane);jamie.giveLastNameTo(jane);
![Page 23: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/23.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Passing Arguments• However, a method cannot replace an
object passed to it as an argument
public void giveLastNameTo2(Name child){ String firstName = child.getFirst(); child = new Name(); child.setFirst(firstName); child.setLast(last);} // end giveLastNameTo2
public void giveLastNameTo2(Name child){ String firstName = child.getFirst(); child = new Name(); child.setFirst(firstName); child.setLast(last);} // end giveLastNameTo2
child is considered local.
It will disappear when the method finishes
child is considered local.
It will disappear when the method finishes
![Page 24: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/24.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
A Definition of the Class Name 16
• View definition of full class
• Note Constructors set methods – mutators
get methods – accessors
toString method
• Note demonstration program
![Page 25: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/25.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Constructors
• Tasks of a constructor Allocate memory for object Initialize data fields
• Properties Same name as class No return type (not even void) Can have any number of parameters
(including no parameters) Note constructors of Name
![Page 26: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/26.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
The Method toString 21
• Note the toString method of class Name Returns a string with value of person's name
• For any class, toString method invoked automatically for command
System.out.println (someObject);
![Page 27: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/27.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Methods That Call Other Methods 22
• Note setName method in class Name Invokes setFirst and setLast setName invokes them without preceding
the method name with object variable and dot
• Consider the getName method Calls toString Thus both methods always give same result
![Page 28: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/28.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Methods That Return an Instance of Their Class 26
• Consider a different version of setName
• The return this; returns a reference to the invoking object.
public Name setName(String firstName, String lastName)
{ setFirst(firstName); setLast(lastName); return this;} // end setName
public Name setName(String firstName, String lastName)
{ setFirst(firstName); setLast(lastName); return this;} // end setName
![Page 29: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/29.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Static Fields and Methods 27
• A static data field does not belong to any one object Also called a class variable Only one instance of the variable exists for all
instances of the class
• Note that a static data field is not a constant (final)
![Page 30: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/30.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Static Fields and Methods
• All instances of the class reference that one variable
![Page 31: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/31.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Static Fields and Methods
• Consider the need of a method that does not belong to an object of any type
• Examples A method to find the max or min of two or more
numbers A square root method
![Page 32: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/32.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Static Fields and Methods
• When specified static, a method is still a member of the class However, does not need an object as a prefix
to the call
• Call with the name of the class
int maximum = Math.max(2, 3);double root = Math.sqrt(4.2);
int maximum = Math.max(2, 3);double root = Math.sqrt(4.2);
![Page 33: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/33.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Overloading Methods 29
• Multiple methods within the same class can have the same name
• Java distinguishes them by noting the parameters Different numbers of parameters Different types of parameters
• This is called the signature of the method
![Page 34: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/34.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Enumeration as a Class 30
• When an enumeration is defined A class is created Default methods include
•toString•equals•ordinal•valueOf
• Also possible to provide additional methods
![Page 35: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/35.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Enumeration as a Class
• Consider the following example of an enumeration of card suits
• View definition of class Suit Note constructor, getColor
• View demonstration program
![Page 36: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/36.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Enumeration as a Class 33
• View class LetterGrade An enumeration class Note class elements
• Consider the following code
LetterGrade myGrade = LetterGrade.B_PLUS;
• Discuss the results of calls to various LetterGrade methods
![Page 37: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/37.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
Packages 34
• Packages enable grouping together multiple related classes
• Specify a class to be part of a package with first line
package myStuff;• Place all classes in same directory which
is named with the name of the package• In your program which uses the package
import myStuff.*;
![Page 38: Java Classes Introduction and Chapter 1 Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall](https://reader035.vdocuments.net/reader035/viewer/2022062421/56649d7e5503460f94a61450/html5/thumbnails/38.jpg)
Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved. 0-13-237045-X
The Java Class Library 35
• The Java language has many classes defined Recall the Math class with max and sqrt
• Collection known as
Java Class Library or
Java Application Programming Interface