0% found this document useful (0 votes)
157 views73 pages

(C) 2010 Pearson Education, Inc. All Rights Reserved

This document discusses object-oriented programming concepts like classes, objects, and methods using an analogy to car design. It explains that classes are like engineering drawings that describe an object, which get built using a constructor. Methods perform tasks by hiding complex implementation details, like how a gas pedal hides the mechanism for making a car accelerate. The document also covers defining classes, creating objects, calling methods, and modeling classes in UML diagrams.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
157 views73 pages

(C) 2010 Pearson Education, Inc. All Rights Reserved

This document discusses object-oriented programming concepts like classes, objects, and methods using an analogy to car design. It explains that classes are like engineering drawings that describe an object, which get built using a constructor. Methods perform tasks by hiding complex implementation details, like how a gas pedal hides the mechanism for making a car accelerate. The document also covers defining classes, creating objects, calling methods, and modeling classes in UML diagrams.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 73

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Covered in this chapter
 Classes
 Objects
 Methods
 Parameters

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Analogy to help you understand classes and their
contents.
 Suppose you want to drive a car and make it go faster by
pressing down on its accelerator pedal.
 Before you can drive a car, someone has to design it.
 A car typically begins as engineering drawings, similar to the
blueprints used to design a house.
 These include the design for an accelerator pedal to make the
car go faster.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Analogy to help you understand classes and their contents.
 The pedal “hides” from the driver the complex mechanisms that
actually make the car go faster, just as the brake pedal “hides” the
mechanisms that slow the car and the steering wheel “hides” the
mechanisms that turn the car.
 This enables people with little or no knowledge of how engines work
to drive a car easily.
 Before you can drive a car, it must be built from the engineering
drawings that describe it.
 A completed car has an actual accelerator pedal to make the car go
faster, but even that’s not enough—the car won’t accelerate on its
own, so the driver must press the accelerator pedal.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Performing a task in a program requires a method.
 The method describes the mechanisms that actually perform its
tasks.
 Hides from its user the complex tasks that it performs, just as
the accelerator pedal of a car hides from the driver the complex
mechanisms of making the car go faster.
 In Java, a class houses a method, just as a car’s
engineering drawings house the design of an
accelerator pedal.
 In a class, you provide one or more methods that are
designed to perform the class’s tasks.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 You must build an object of a class before a program
can perform the tasks the class describes how to do.
 That is one reason Java is known as an object-oriented
programming language.
 When you drive a car, pressing its gas pedal sends a
message to the car to perform a task—make the car go
faster.
 You send messages to an object—each message is
implemented as a method call that tells a method of the
object to perform its task.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 A car has many attributes
 Color, the number of doors, the amount of gas in its tank, its
current speed and its total miles driven.
 Attributes are represented as part of a car’s design in its
engineering diagrams.
 Every car maintains its own attributes.
 Each car knows how much gas is in its own gas tank, but not
how much is in the tanks of other cars.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 An object has attributes that are carried with the object
as it’s used in a program.
 Specified as part of the object’s class.
 A bank account object has a balance attribute that represents
the amount of money in the account.
 Each bank account object knows the balance in the account it
represents, but not the balances of the other accounts in the
bank.
 Attributes are specified by the class’s instance
variables.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Create a new class (GradeBook)
 Use it to create an object.
 Each class declaration that begins with keyword
public must be stored in a file that has the same
name as the class and ends with the .java file-name
extension.
 Keyword public is an access modifier.
 Indicates that the class is “available to the public”

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 The main method is called automatically by the Java
Virtual Machine (JVM) when you execute an application.
 Normally, you must call methods explicitly to tell them to
perform their tasks.
 A public is “available to the public”
 It can be called from methods of other classes.
 The return type specifies the type of data the method returns
after performing its task.
 Return type void indicates that a method will perform a
task but will not return (i.e., give back) any information to
its calling method when it completes its task.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Method name follows the return type.
 By convention, method names begin with a lowercase first
letter and subsequent words in the name begin with a
capital letter.
 Empty parentheses after the method name indicate that the
method does not require additional information to perform
its task.
 Together, everything in the first line of the method is
typically called the Method header
 Every method’s body is delimited by left and right braces.
 The method body contains one or more statements that
perform the method’s task.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Use class GradeBook in an application.
 Class GradeBook is not an application because it does not
contain main.
 Can’t execute GradeBook; will receive an error message
like:
 Exception in thread "main"
java.lang.NoSuchMethodError: main
 Must either declare a separate class that contains a main
method or place a main method in class GradeBook.
 To help you prepare for the larger programs, use a separate
class containing method main to test each new class.
 Some programmers refer to such a class as a driver class.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 A static method (such as main) is special
 It can be called without first creating an object of the class in
which the method is declared.
 Typically, you cannot call a method that belongs to
another class until you create an object of that class.
 Declare a variable of the class type.
 Each new class you create becomes a new type that can be
used to declare variables and create objects.
 You can declare new class types as needed; this is one reason
why Java is known as an extensible language.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Class instance creation expression
 Keyword new creates a new object of the class specified to the
right of the keyword.
 Used to initialize a variable of a class type.
 The parentheses to the right of the class name are required.
 Parentheses in combination with a class name represent a call
to a constructor, which is similar to a method but is used only
at the time an object is created to initialize the object’s data.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Call a method via the class-type variable
 Variable name followed by a dot separator (.), the method
name and parentheses.
 Call causes the method to perform its task.
 Any class can contain a main method.
 The JVM invokes the main method only in the class used to
execute the application.
 If multiple classes that contain main, then one that is invoked
is the one in the class named in the java command.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Figure 3.3: UML class diagram for class GradeBook.
 Each class is modeled in a class diagram as a rectangle with
three compartments.
 Top: contains the class name centered horizontally in boldface type.
 Middle: contains the class’s attributes, which correspond to instance
variables (Section 3.5).
 Bottom: contains the class’s operations, which correspond to
methods.
 Operations are modeled by listing the operation name
preceded by an access modifier (in this case +) and
followed by a set of parentheses.
 The plus sign (+) corresponds to the keyword public.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Car analogy
 Pressing a car’s gas pedal sends a message to the car to
perform a task—make the car go faster.
 The farther down you press the pedal, the faster the car
accelerates.
 Message to the car includes the task to perform and additional
information that helps the car perform the task.
 Parameter: Additional information a method needs to
perform its task.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 A method can require one or more parameters that
represent additional information it needs to perform its
task.
 Defined in a comma-separated parameter list
 Located in the parentheses that follow the method name
 Each parameter must specify a type and an identifier.
 A method call supplies values—called arguments—for
each of the method’s parameters.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Scanner method nextLine
 Reads characters typed by the user until the newline character is
encountered
 Returns a String containing the characters up to, but not including,
the newline
 Press Enter to submit the string to the program.

 Scanner method next


 Reads individual words
 Reads characters until a white-space character is encountered, then
returns a String (the white-space character is discarded).
 Information after the first white-space character can be read by other
statements that call the Scanner’s methods later in the program-.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 More on Arguments and Parameters
 The number of arguments in a method call must match the
number of parameters in the parameter list of the method’s
declaration.
 The argument types in the method call must be “consistent
with” the types of the corresponding parameters in the
method’s declaration.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 The UML class diagram of Fig. 3.6 models class
GradeBook of Fig. 3.4.
 The UML models a parameter by listing the parameter
name, followed by a colon and the parameter type in
the parentheses- following the operation name.
 The UML type String corresponds to the Java type
String.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Notes on import Declarations
 Classes System and String are in package java.lang
 Implicitly imported into every Java program
 Can use the java.lang classes without explicitly importing them
 Most classes you’ll use in Java programs must be imported explicitly.
 Classes that are compiled in the same directory on disk are in the
same package—known as the default package.
 Classes in the same package are implicitly imported into the source-
code files of other classes in the same package.
 An import declaration is not required if you always refer to a class
via its fully qualified class name
 Package name followed by a dot (.) and the class name.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Local variables
 Variables declared in the body of a particular method.
 When a method terminates, the values of its local variables are
lost.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 A class normally consists of one or more methods that
manipulate the attributes that belong to a particular
object of the class.
 Attributes are represented as variables in a class declaration.
 Called fields.
 Declared inside a class declaration but outside the bodies of the
class’s method declarations.
 Instance variable
 When each object of a class maintains its own copy of an
attribute, the field is an instance variable
 Each object (instance) of the class has a separate instance of
the variable in memory.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Every instance (i.e., object) of a class contains one copy of
each instance variable.
 Instance variables typically declared private.
 private is an access modifier.
 private variables and methods are accessible only to methods of
the class in which they are declared.
 Declaring instance private is known as data hiding or
information hiding.
 private variables are encapsulated (hidden) in the object
and can be accessed only by methods of the object’s class.
 Prevents instance variables from being modified accidentally by a
class in another part of the program.
 Set and get methods used to access instance variables.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 When a method that specifies a return type other than void
completes its task, the method returns a result to its calling
method.
 Method setCourseName and getCourseName each
use variable courseName even though it was not declared
in any of the methods.
 Can use an instance variable of the class in each of the classes
methods.
 Exception to this is static methods (Chapter 8)
 The order in which methods are declared in a class does not
determine when they are called at execution time.
 One method of a class can call another method of the same
class by using just the method name.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Unlike local variables, which are not automatically
initialized, every field has a default initial value—a
value provided by Java when you do not specify the
field’s initial value.
 Fields are not required to be explicitly initialized before
they are used in a program—unless they must be
initialized to values other than their default values.
 The default value for a field of type String is null

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 set and get methods
 A class’s private fields can be manipulated only by the
class’s methods.
 A client of an object calls the class’s public methods to
manipulate the private fields of an object of the class.
 Classes often provide public methods to allow clients to set
(i.e., assign values to) or get (i.e., obtain the values of)
private instance variables.
 The names of these methods need not begin with set or get, but
this naming convention is recommended.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Figure 3.9 contains an updated UML class diagram for
the version of class GradeBook in Fig. 3.7.
 Models instance variable courseName as an attribute in the
middle compartment of the class.
 The UML represents instance variables as attributes by listing
the attribute name, followed by a colon and the attribute type.
 A minus sign (–) access modifier corresponds to access
modifier private.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Types are divided into primitive types and reference types.
 The primitive types are boolean, byte, char, short,
int, long, float and double.
 All nonprimitive types are reference types.
 A primitive-type variable can store exactly one value of its
declared type at a time.
 Primitive-type instance variables are initialized by
default—variables of types byte, char, short, int,
long, float and double are initialized to 0, and
variables of type boolean are initialized to false.
 You can specify your own initial value for a primitive-type
variable by assigning the variable a value in its declaration.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Programs use variables of reference types (normally called
references) to store the locations of objects in the
computer’s memory.
 Such a variable is said to refer to an object in the program.
 Objects that are referenced may each contain many instance
variables and methods.
 Reference-type instance variables are initialized by default
to the value null
 A reserved word that represents a “reference to nothing.”
 When using an object of another class, a reference to the
object is required to invoke (i.e., call) its methods.
 Also known as sending messages to an object.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 When an object of a class is created, its instance
variables are initialized by default.
 Each class can provide a constructor that initializes an
object of a class when the object is created.
 Java requires a constructor call for every object that is
created.
 Keyword new requests memory from the system to
store an object, then calls the corresponding class’s
constructor to initialize the object.
 A constructor must have the same name as the class.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 By default, the compiler provides a default constructor with
no parameters in any class that does not explicitly include a
constructor.
 Instance variables are initialized to their default values.
 Can provide your own constructor to specify custom
initialization for objects of your class.
 A constructor’s parameter list specifies the data it requires
to perform its task.
 Constructors cannot return values, so they cannot specify a
return type.
 Normally, constructors are declared public.
 If you declare any constructors for a class, the Java
compiler will not create a default constructor for that class.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 The UML class diagram of Fig. 3.12 models class
GradeBook of Fig. 3.10, which has a constructor that
has a name parameter of type String.
 Like operations, the UML models constructors in the
third compartment of a class in a class diagram.
 To distinguish a constructor, the UML requires that the
word “constructor” be placed between guillemets («
and ») before the constructor’s name.
 List constructors before other operations in the third
compartment.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 3.9 – home reading and practice

(C) 2010 Pearson Education, Inc. All


rights reserved.
 Fig. 3.16: Summary of the GUI and Graphics Case
Study in each chapter.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Many applications use windows or dialog boxes (also
called dialogs) to display output.
 Typically, dialog boxes are windows in which programs
display important messages to users.
 Class JOptionPane provides prebuilt dialog boxes
that enable programs to display windows containing
messages—such windows are called message dialogs.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
 Package javax.swing contains many classes that help
you create graphical user interfaces (GUIs).
 GUI components facilitate data entry by a program’s user
and presentation of outputs to the user.
 JOptionPane method showMessageDialog displays
a dialog box containing a message.
 Requires two arguments.
 The first helps the Java application determine where to position the
dialog box.
 If the first argument is null, the dialog box is displayed at the center of
your screen.
 The second argument is the String to display in the dialog box.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 JOptionPane method showMessageDialog is a
static method.
 Such methods often define frequently used tasks.
 Typically called by using method’s class name
followed by a dot (.) and the method name, as in
ClassName.methodName( arguments )
 Notice that you do not create an object of class
JOptionPane to use its static method
showMessageDialog.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 An input- dialog allows the user to enter data into a
program.
 JOptionPane method showInputDialog
displays an input dialog
 Contains a prompt and a field (known as a text field) in which
the user can enter text.
 Method showInputDialog (line 11) returns a
String containing the characters typed by the user.
 If you press the dialog’s Cancel button or press the Esc
key, the method returns null.

(C) 2010 Pearson Education, Inc. All


rights reserved.
 static String method format returns a
formatted String.
 Method format works like method
System.out.printf, except that format returns
the formatted String rather than displaying it in a
command window.

(C) 2010 Pearson Education, Inc. All


rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.
(C) 2010 Pearson Education, Inc. All
rights reserved.

You might also like