Chapter 2 Using Objects - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 2 Using Objects

Description:

Can be made up of letters, digits, and the underscore (_) character. Cannot start with a digit ... parameters, and return a reference to the constructed object ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 80
Provided by: chand158
Learn more at: http://www.cs.sjsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Chapter 2 Using Objects


1
Chapter 2Using Objects
2
Chapter Goals
  • Learn about variables
  • Type of variables, assignment operators, etc.
  • Classes, objects and methods
  • Methods
  • parameters and return values
  • Accessor and mutator methods
  • Number types

3
Chapter Goals
  • Constructing objects
  • Write test programs
  • Browse the API documentation
  • Objects versus object references

4
Types and Variables
  • Every value has a type and a name
  • Variable declaration examples
  • Variables
  • Store values
  • Can be used in place of the objects they store

String greeting "Hello, World!"PrintStream
printer System.outint luckyNumber 13
5
Syntax 2.1 Variable Definition
 typeName variableName value or typeName
variableName Example   String greeting
"Hello, Dave!" Purpose To define a new
variable of a particular type, (optionally)
supply an initial value
6
Identifiers
  • Identifier
  • Name of a variable, method, or class
  • Rules for identifiers in Java
  • Can be made up of letters, digits, and the
    underscore (_) character
  • Cannot start with a digit
  • Cannot use other symbols such as ? or
  • Spaces are not permitted inside identifiers
  • You cannot use reserved words
  • Identifiers are case sensitive

7
Identifiers
  • By convention, variable names start with a
    lowercase letter
  • But things like luckyNumber are OK
  • This is sometimes called camel case
  • By convention, class names start with an
    uppercase letter

8
Self Check
  • What is the type of the values 0 and "0"?
  • Which of the following are legal identifiers?
  • Define a variable to hold your name. Use camel
    case in the variable name.

Greeting1gvoid101dalmatiansHello,
Worldltgreetinggt
9
Answers
  • int and String
  • Only the first two are legal identifiers

String myName "John Q. Public"
10
The Assignment Operator
  • Assignment operator is
  • Not used as a statement about equality
  • a b assigns value of b to a
  • Not the same meaning as in math
  • Used to change the value of a variableint
    luckyNumber 13 luckyNumber 12

11
Uninitialized Variables
  • Compile time error

int luckyNumberSystem.out.println(luckyNumber)
   // ERROR - uninitialized variable
Figure 2An Uninitialized Object Variable
12
Initialized Variable
  • To initialize a variable
  • Or, better yet

int luckyNumberluckyNumber 13 System.out.prin
tln(luckyNumber)
int luckyNumber 13 System.out.println(luckyNumb
er)
13
Syntax 2.2 Assignment
  • Assign a value to a variable

 variableName value Example  luckyNumber
12 Purpose To assign a new value to a
previously defined variable.
14
Self Check
  • Is 12 12 a valid expression in the Java
    language?
  • How do you change the value of the greeting
    variable to "Hello, Nina!"?

15
Answers
  • No, the left-hand side of the operator must be
    a variable
  • Note thatis not the right answerthat
    statement defines a new variable

greeting "Hello, Nina!"
String greeting "Hello, Nina!"
16
Objects and Classes
  • Object entity that you can manipulate in your
    programs (by calling a method or methods)
  • Each object belongs to a class. For example,
    System.out belongs to the class PrintStream

17
Methods
  • Method Sequence of instructions that accesses
    the data of an object
  • You manipulate objects by calling methods
  • Class Set of objects with the same behavior
  • Class defines methods that can be applied to an
    object

String greeting "Hello"greeting.println() //
Errorgreeting.length() // OK
println not in String class length is in String
class
18
Methods
  • Public Interface Specifies what you can do with
    the objects of a class
  • Private (hidden) implementation describes how
    these actions are carried out

19
Representation of 2 String Objects
Figure 4A Representation of Two String Objects
20
Example of a String Method
  • length counts the number of characters in a
    string

String greeting "Hello, World!" int n
greeting.length() // sets n to 13
21
String Methods
  • toUpperCase creates another String object
    that contains the characters of the original
    string, with lowercase letters converted to
    uppercase

String river "Mississippi" String bigRiver
river.toUpperCase() // sets bigRiver to
"MISSISSIPPI"
22
String Methods
  • When applying a method to an object, method must
    be defined in the appropriate class
  • length is not defined in PrintStream class to
    which System.out belongs

System.out.length() // This method call is an
error
23
Self Check
  • How can you compute the length of the string
    "Mississippi"?
  • How can you print out the uppercase version of
    "Hello, World!"?
  • Is it legal to call river.println()? Why or why
    not?

24
Answers
  • It is not legal. The variable river has type
    String and the println method is not a method of
    the String class.

river.length() or "Mississippi".length()
System.out.println(greeting.toUpperCase())
25
Implicit and Explicit Parameters
  • Parameter (explicit parameter) is an input to a
    method. Not all methods have explicit
    parameters.
  • The object on which a method is invoked is an
    implicit parameter

System.out.println(greeting) greeting.length()
// has no explicit parameter
System.out.println(greeting)
26
Implicit and Explicit Parameters
Figure 5Passing a parameter to the println
method
27
Return Values
  • A return value is a result that the method has
    computed for use by the code that called it

int n greeting.length() // return value stored
in n
28
Return Values
Figure 6Invoking the length Method on a String
Object
29
Passing Return Values
  • You can also use the return value as a parameter
    of another method
  • Not all methods return values. For example,

System.out.println(greeting.length())
println
30
Passing Return Values
Figure 7Passing the Result of a Method Call to
Another Method
31
A More Complex Call
  • replace method carries out a search-and-
    replace operation
  • This method call has
  • one implicit parameter string "Mississippi"
  • two explicit parameters "issipp" and "our"
  • a return value the string "Missouri"

river.replace("issipp", "our") // constructs a
new string ("Missouri")
32
A More Complex Call
Figure 8Calling the replace Method
33
Method Definitions
  • Method definition specifies types of explicit
    parameters and return value
  • Type of implicit parameter is current class, so
    not mentioned in method definition

34
Method Definitions
  • Example Class String defines
  • Search for target string and replace with
    replacement at each occurrence of string

public int length() // return type int //
no explicit parameterpublic String
replace(String target, String replacement) //
return type String // two explicit
parameters of type String
35
Method Definitions
  • If method returns no value, the return type is
    declared as void
  • A method name is overloaded if a class has more
    than one method with the same name (but different
    parameter types)

public void println(String output) // in class
PrintStream
public void println(String output)public void
println(int output)
36
Self Check
  • What are the implicit parameters, explicit
    parameters, and return values in the method call
    river.length()?
  • What is the result of the call
    river.replace("p", "s")?
  • What is the result of the call greeting.replace("W
    orld","Dave").length()?
  • How is the toUpperCase method defined in the
    String class?

37
Answers
  • The implicit parameter is river. There is no
    explicit parameter and return value is 11
  • "Missississi"
  • 12
  • As public String toUpperCase() with no
    explicit parameter and return type String

38
Number Types
  • Integers short, int, long
  • For example
  • 13
  • Floating point numbers float, double
  • For example1.30.00013

39
Number Types
  • When a floating-point number is multiplied or
    divided by 10, only the position of the decimal
    point changes it "floats". This representation
    is related to the scientific notation 1.3 10-4.
  • Numbers are not objects numbers types are
    primitive types

1.3E-4       // 1.3 ? 10-4 written in Java
40
Arithmetic Operations
  • Math operators - ?
  • As in math, the ? operator binds more strongly
    than the or - operator

10 nn - 110 n       // 10 x n
x y 2    // means the sum of x and y 2(x
y) 2  // multiplies the sum of x and y with 2
41
Self Check
  • Which number type would you use for storing the
    area of a circle?
  • Why is the expression 13.println() an error?
  • Write an expression to compute the average of the
    values x and y.

42
Answers
  • double
  • An int is not an object, and you cannot call a
    method on it

(x y) 0.5
43
Rectangular Shapes and Rectangle Objects
  • Objects of type Rectangle describe rectangular
    shapes

Figure 9Rectangular Shapes
44
Rectangular Shapes and Rectangle Objects
  • A Rectangle object is not a shape
  • It is an object that contains a set of numbers
    that describe a rectangle

Figure 10Rectangular Objects
45
Constructing Objects
  • Details
  • The new operator makes a Rectangle object
  • It uses the parameters (in this example, 5, 10,
    20, and 30) to initialize the data of the object
  • It returns the object
  • Usually the output of the new operator is stored
    in a variable

new Rectangle(5, 10, 20, 30)
Rectangle box new Rectangle(5, 10, 20, 30)
46
Constructing Objects
  • The process of creating a new object is called
    construction (since it uses a constructor method)
  • The four values 5, 10, 20, and 30 are called the
    construction parameters
  • Some classes let you construct objects in
    multiple ways

new Rectangle() // constructs a rectangle
with its top-left corner // at the origin (0,
0), width 0, and height 0
47
Syntax 2.3 Object Construction
new ClassName(parameters) Example new
Rectangle(5, 10, 20, 30)new Rectangle() Purpose
To construct a new object, initialize it with
the construction parameters, and return a
reference to the constructed object
48
Self Check
  • How do you construct a square with center (100,
    100) and side length 20?
  • What does the following statement print?

System.out.println(new Rectangle().getWidth())
49
Answers
  • 0

new Rectangle(90, 90, 20, 20)
50
Accessor and Mutator Methods
  • An accessor method does not change the state of
    its implicit parameter
  • A mutator method changes the state of its
    implicit parameter

double width box.getWidth()
box.translate(15, 25)
51
Accessor and Mutator Methods
Figure 11Using the translate Method to Move a
Rectangle
52
Self Check
  • Is the toUpperCase method of the String class an
    accessor or a mutator?
  • Which call to translate is needed to move the box
    rectangle so that its top-left corner is the
    origin (0, 0)? Recall that

Rectangle box new Rectangle(5, 10, 20, 30)
53
Answers
  • An accessor since it does not modify the original
    string (it returns a new string with uppercase
    letters)
  • box.translate(-5, -10) (provided the box
    rectangle has not been changed)

54
Implementing a Test Program
  • Create a new class
  • Supply a main method
  • Inside the main method, construct one or more
    objects
  • Apply methods to the objects
  • Display the results of the method calls

55
Importing Packages
  • Must include appropriate packages
  • Java classes are grouped into packages
  • Import library classes by specifying the package
    and class name, for example,
  • You do not need to import classes in the
    java.lang package such as String and System

import java.awt.Rectangle
56
Importing a Class from a Package
 import packageName.ClassName Example  import
java.awt.Rectangle Purpose To import a class
from a package for use in a program.
57
File MoveTester.java
01 import java.awt.Rectangle 02 03 public
class MoveTester 04 05 public static void
main(String args) 06 07 Rectangle
box new Rectangle(5, 10, 20, 30) 08 09
// Move the rectangle 10
box.translate(15, 25) 11 12 // Print
information about the moved rectangle 13
System.out.println("After moving, the top-left
corner is") 14
System.out.println(box.getX()) 15
System.out.println(box.getY()) 16 17
58
Self Check
  • The Random class is defined in the java.util
    package. What do you need to do in order to use
    that class in your program?
  • Why doesn't the MoveTester program print the
    width and height of the rectangle?

59
Answers
  • Add the statement import java.util.Random
    at the top of your program
  • It is not necessary since the translate method
    does not modify the shape (width, height) of the
    rectangle

60
Testing Classes in an IDE
Figure 12Testing a Method Call in Bluej
61
The API Documentation
  • API Application Programming Interface
  • Lists classes and methods in the Java library
  • http//java.sun.com/javase/6/docs/api/index.html

62
The API Documentation of the Standard Java
Library
Figure 13The API Documentation of the Standard
Java Library
63
The API Documentation for the Rectangle Class
Figure 14The API Documentation of the Rectangle
Class
64
Javadoc Method Summary
Figure 15The Method Summary for the Rectangle
Class
65
translate Method Documentation
Figure 16The API Documentation of the translate
Method
66
Self Check
  • Look at the API documentation of the String
    class. Which method would you use to obtain the
    string "hello, world!" from the string "Hello,
    World!" ?
  • In the API documentation of the String class,
    look at the description of the trim method. What
    is the result of applying trim to the string "
    Hello, Space ! " (note the spaces in the string)?

67
Answers
  • toLowerCase
  • "Hello, Space !" (only the leading and
    trailing spaces are trimmed)

68
Object References
  • References describe the location of objects
  • The new operator returns a reference to a new
    object
  • Multiple object variables can refer to the same
    object

Rectangle box new Rectangle()
Rectangle box new Rectangle(5, 10, 20,
30)Rectangle box2 boxbox2.translate(15, 25)
69
Object References
  • Primitive type variables are not object variables
  • So, for example, cannot call a method on a
    primitive variable

70
Object Variables
Figure 17 An Object Variable containing an
Object Reference
71
Object Variables
72
Object Variables and Number Variables
Figure 19 A Number Variable Stores a Number
73
Copying Numbers
int luckyNumber 13int luckyNumber2
luckyNumberluckyNumber2 12
Figure 20 Copying Numbers
74
Copying Object References

Rectangle box new Rectangle(5, 10, 20,
30)Rectangle box2 boxbox2.translate(15, 25)
75
Copying Object References
Figure 21 Copying Object References
76
Copying Object References
  • Why are objects and primitive variables (such as
    numbers) treated differently in Java?

77
Self Check
  • Assuming that greeting and greeting2 are String
    objects, what is the effect of the assignment
    greeting2 greeting?
  • After calling greeting2.toUpperCase(), what are
    the contents of greeting and greeting2?

78
Answers
  • Now greeting and greeting2 both refer to the same
    String object.
  • Both variables still refer to the same string,
    and the string has not been modified. Recall that
    the toUpperCase method constructs a new string
    that contains uppercase characters, leaving the
    original string unchanged (tricky)

79
Mainframes When Dinosaurs Ruled the Earth
Figure 22 A Mainframe Computer
Write a Comment
User Comments (0)
About PowerShow.com