22
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

  • View
    217

  • Download
    2

Embed Size (px)

Citation preview

Page 1: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie

COMP 14Introduction to Programming

Adrian Ilie

July 8, 2005

Page 2: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie2

COMP 14 So Far...

• Problem Solving• Mathematical Calculations• Output• User Input• File I/O• Selection (if, if-else, switch)• Loops (while, do...while, for)

Page 3: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie3

COMP 14 Next...

• Object-Oriented Design• Writing Methods♦ pieces of code that we give a name

• Writing Classes♦ organize related pieces of information

• Arrays♦ access multiple pieces of information

with a single identifier

Page 4: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie4

Object-Oriented Design

• What is it?

Designing a solution to a problem by first identifying components called objects, and determining how the objects interact with each other

Page 5: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie5

ObjectsVCR Example

• Use it without knowing how it's made

• Internal parts are hidden -- only interact with the provided buttons

• Can't modify the functions of a VCR -- record button always records, play button always plays

Same is true for objects (like Strings) that are provided by Java

Page 6: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie6

Objects

Consist of data and operations on the data• Data - descriptive characteristics• Operations - what it can do (or what can be

done to it)

Example A coin that can be flipped so that its face

shows either "heads" or "tails"♦ data: its current face (heads or tails)♦ operations: it can be flipped

Operations can change data.

Page 7: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie7

ObjectsAnd Methods and Classes

• We represent operations with methods♦ group of statements that are given a name

• We can use objects and their methods without knowing exactly how the methods work

• An object is an instance of a class. A class is the blueprint of an object.♦ the class provides the methods that can operate

on an object of that class

Page 8: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie8

Classes

• A class contains data declarations and method declarations

• A class is a description of an object♦ just a model, not an actual object♦ you can think of the concept of a book without

thinking of a particular book

• A class is no more an object than a blueprint is an actual house

Page 9: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie9

Object-Oriented DesignSimplified Methodology

1. Write down detailed description of problem

2. Identify all (relevant) nouns and verbs

3. From list of nouns, select objects

4. Identify data components of each object

5. From list of verbs, select operations

Page 10: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie10

Object-Oriented Design Example 1

• Problem Statement♦ Write a program to input the length and

width of a rectangle and calculate and print the perimeter and area of the rectangle

Page 11: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie11

Example 1Building a Rectangle

• Identify nouns♦ length, width, rectangle, perimeter,

area

• Identify each class♦ length of a rectangle♦ width of a rectangle♦ perimeter of a rectangle♦ area of a rectangle

Page 12: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie12

Example 1Building a Rectangle

• Identify data members for each class♦ nouns: length, width,

area, perimeter♦ what are the essential

nouns for describing the rectangle?

♦ area and perimeter can be computed if we know the length and width

Page 13: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie13

Example 1Building a Rectangle

• Identify operations for each class♦ input, calculate, print♦ setLength♦ setWidth♦ computePerimeter♦ computeArea♦ print♦ getLength♦ getWidth

directly from problemstatement

customary to include operations to get the value of the data members

Page 14: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie14

class Rectangle Data Members and Operations

Last Step:design and implement an algorithm for each operation

class name

data members

operations(methods)

Page 15: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie15

Anatomy of a Class

• A class contains data declarations and method declarations

int width;int length;

Data declarations

Method declarations(operations)

Page 16: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie16

Classes and Objects

Rectangle

A class(the concept)

length = 15, width = 3

An object(the realization)

length = 20, width = 6

length = 15, width = 15

Multiple objectsfrom the same class

Page 17: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie17

Object-Oriented Design Example 2

A place to buy candy is from a candy machine. A new candy machine is bought for the gym, but it is not working properly. The candy machine has four dispensers to hold and release items sold by the candy machine and a cash register. The machine sells four products —candies, chips, gum, and cookies—each stored in a separate dispenser. You have been asked to write a program for this candy machine so that it can be put into operation.

Page 18: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie18

Object-Oriented Design: Example 2

The program should do the following:• Show the customer the different

products sold by the candy machine.• Let the customer make the selection.• Show the customer the cost of the item

selected.• Accept money from the customer.• Return change.• Release the item, that is, make the

sale.

Page 19: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie19

Object-Oriented Design: Example 2

Page 20: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie20

Object-Oriented Design: Example 2

Page 21: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie21

Non-Concrete Objects

• Objects in programs don't always have real-world analogs

Exampleobject: error messagedata: text of the error messageoperation: print the text of the error message to the screen

Page 22: The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Adrian Ilie COMP 14 Introduction to Programming Adrian Ilie July 8, 2005

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Adrian Ilie22

Next in Comp14

• Tomorrow: writing methods

• Monday: review for mid-term♦ Bring laptops♦ Write questions before coming to class