28
Chapter 5 - Writing a Problem Domain Class Definition 1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Embed Size (px)

Citation preview

Page 1: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 1

Chapter 5

Writing a Problem Domain Class Definition

Page 2: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 2

Chapter 5 Topics

• Writing class definitions• Defining attributes• Writing methods• Creating an instance• Writing a tester class• Invoking methods• Working with multiple instances• Writing a constructor method

Page 3: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 3

Naming Conventions

• Class names begin with a capital letter– Customer, Boat

• Attribute names begin with lowercase letters, with subsequent words capitalized– address, phoneNumber

• Method names begin with lowercase letters, with subsequent words capitalized, and usually contain a verb describing what the method does– setAddress, getPhoneNumber

Page 4: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 4

Developing a PD Class Definition

• Class Definition Structure– Class definition

• The Java code written to represent a class

– Class header• Line of code that identifies the class and some of its

characteristics• Keywords:

– public» Indicates class has public availability

– class» Indicates this line of code is a class header

Page 5: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 5

Page 6: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 6

Page 7: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 7

Developing a PD Class Definition

• Defining Attributes– Define attributes by declaring variables for each

one– Specify accessibility of a variable:

• public– Allows any class to access the variable directly

• private– Prohibits direct access

» Requires accessor method for access by other classes– Accessible only from within class where it is defined

• protected – Allows both subclasses and classes defined within the same

package to have direct access

Page 8: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 8

Developing a PD Class Definition

• Writing Methods– Object interaction via client-server

model• Client object

– Object sending the message» Invokes server method and possibly sends

values in the form of arguments

• Server object– Object receiving the message

» May return value to client

Page 9: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 9

Page 10: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 10

Developing a PD Class Definition

• Writing Methods– Method Header (4 parts)

• Accessibility– public, private, or protected

• Data type– void or data type of returned value

• Method name– Following specified conventions

• Parameter list– Variable declarations that match the argument

parameters

Page 11: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 11

Page 12: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 12

Developing a PD Class Definition

• Writing Methods– Accessor methods (standard method)

• Get accessor methods (getters)– Named with prefix “get” followed by attribute

name– Retrieve attribute values

• Set accessor methods (setters)– Named with prefix “set” followed by attribute

name– Change attribute values

Page 13: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 13

Page 14: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 14

Page 15: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 15

Page 16: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 16

Testing a PD Class

• Tester class– Used to simulate the way a client might

send messages to a server• To test the proper operation of the server’s

methods

– Consists of a main method that instantiates a client class object and invokes its methods

Page 17: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 17

Testing a PD Class

• Creating an Instance– Define a reference variable– Specify a data type– Use new keyword to create the instance

• Customer firstCustomer = new Customer();

– Test interactions• Use a sequence diagram to show

interactions between client and server

– See Figure 5-8, pp. 150

Page 18: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 18

Page 19: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 19

Page 20: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 20

Page 21: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 21

Page 22: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 22

Page 23: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 23

Page 24: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 24

Testing a PD Class

• Creating Multiple Instances– The previous process can also be used

to test multiple instances from a single tester

– Example:• Bradshaw Marina’s customers• See Figure 5-16, pp. 157

Page 25: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 25

Page 26: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 26

Writing a Constructor Method

• Constructor Method– Automatically invoked when a class

instance is created using the new operator• Has same name as the class• Has no return type

– Java creates a default constructor if no constructor has been explicitly written for a class• public Customer() { }

Page 27: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 27

Writing a Constructor Method

• Parameterized Constructor– Has parameter list to receive arguments

for populating the instance attributes by:• Calling the accessor (setter) methods for

each instance variableor

• Setting the value of the instance variable directly

– See pp. 160– See Figure 5-18, pp. 162

Page 28: Chapter 5 - Writing a Problem Domain Class Definition1 Chapter 5 Writing a Problem Domain Class Definition

Chapter 5 - Writing a Problem Domain Class Definition 28

Writing a tellAboutSelf Method

• tellAboutSelf Method– Single method that provides requestor

with a String that contains all the instance variable names and values

– Alternative to invoking individual accessor (getter) methods

– See pp. 163 and Figure 5-20 on pp.164