Introduction To Object-Oriented Programming

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 42

Chapter 1

Introduction to Object-Oriented
Programming

Chapter 1 Topics

Overview of Object-Oriented Programming


How is Java Code Converted into a Form
that a Computer Can use?
Interpreting Code vs Executing Code
Compilation, Interpretation, and Execution
Kinds of Instructions
Inside the Computer
Problem-Solving Techniques
2

What is Computer Programming?

It is the process of specifying the


data types and the operations for
a computer to apply to data in
order to solve a problem
STEP 1
STEP 2
STEP 3
. . .
3

Programming Life Cycle Phases


1

Problem-Solving

Implementation

Maintenance

Problem-Solving Phase

ANALYZE the problem and SPECIFY what


the solution must do

Develop a GENERAL SOLUTION


(ALGORITHM) to solve the problem

VERIFY that your solution really solves


the problem

Sample Problem

A programmer needs an algorithm to


determine an employees weekly
wages

How would the calculations be done


by hand?
6

One Employees Wages

During one week an employee works 52 hours at the


hourly pay rate $24.75
How much is the employees wages?
Assume a 40.0 hour normal work week
Assume an overtime pay rate factor of 1.5

40 x $ 24.75
= $
12 x 1.5 x $ 24.75 = ___________
$ 445.50
$ 1435.50

990.00

Weekly Wages, in General


If hours is over 40.0, then
wages = (40.0 * payRate) + (hours - 40.0) * 1.5 *payRate

RECALL EXAMPLE
( 40 x $ 24.75 ) + ( 12 x 1.5 x $ 24.75 ) = $1435.50

otherwise,
wages = hours * payRate

A class is . . .
a

description of the representation


of a specific kind of object, in
terms of data and behavior
Date class
data:

month, day, year


operations to set and return month,
day, year
9

An Object is . . .
an

instance of a class
a Date object
June
23
2004

10

An Algorithm is . . .
instructions

for solving a
problem in a finite amount of
time using a finite amount of
data

11

A Program is . . .
an

algorithm written for a


computer that defines classes of
objects and orchestrates their
interactions to solve a problem
objects work together to create
an application (or program) that
solves a problem
12

Employees Weekly Wages


Objects: Employee, pay rate, hours worked, wages
Algorithm:
1. Get the employees hourly pay rate
2. Get the hours worked this week
3. Calculate this weeks regular wages
4. Calculate this weeks overtime wages (if any)
5. Add the regular wages to overtime wages (if any) to
determine total wages for the week

13

A Programming Language is . . .

a language with strict grammatical


rules, symbols, and special words
used to construct a computer
program

14

Code is . . .

the product of translating an


algorithm into a programming
language

instructions for a computer that are


written in a programming language

15

Implementation Phase: Test

Testing means executing (running)


your program on the computer, to see
if it produces correct results

If it does not, check the algorithm


and/or code to find the error and fix it

Finding known errors is called


debugging
16

Maintenance Phase

Use and modify the program to meet


changing requirements or correct errors
that show up in using it

Maintenance begins when your program


is put into use and accounts for the
majority of effort on most programs

17

Programming Life Cycle


Problem-Solving
Analysis and Specification
General Solution ( Algorithm )
Verify
Implementation
Concrete Solution ( Code )
Test
Maintenance
Use
Maintain

18

Programming Shortcut?
PROBLEM-SOLVING PHASE
Problem

Algorithm

Shortcut?
Code

TEST

THINKING
IMPLEMENTATION
PHASE
CODE
19

Binary Representation of Data

Circuit states correspond to 0 and 1

Bit (short for binary digit) refers to a single 0


or 1
Bit patterns represent data

1 byte = 8 bits

1 KB

= 1024 bytes

1 MB

= 1024 x 1024 = 1,048,576 bytes

20

How Many Possible Digits?

Binary (Base 2) Numbers use 2 digits:


Just 0 and 1

Decimal (Base 10) Numbers use 10 digits:


0 through 9

21

Machine Language

Is not portable

Runs only on specific type of computer

Is made up of binary-coded instructions


(strings of 0s and 1s)

Is the language that can be directly used


by the computer
22

Assembly Languages

Are machine dependent and run on only one


specific type of computer
Are translated into machine code by
assemblers
Are made up of English-like abbreviations
such as LOAD, STORE, or ADD

23

High Level Languages

Are portable
Are translated into machine code by
compilers
Instructions are written in language similar
to natural language
Examples -- FORTRAN, COBOL, Pascal,
C, C++
Many are standardized by ISO/ANSI to
provide an official description of the
language

24

Three C++ Program Stages


myprog.cpp
SOURCE
written
written in
in
C++
C++

via compiler

myprog.obj
OBJECT

myprog.exe
EXECUTABLE

written
writtenin
in
machine
machine
language
language

written
writtenin
in
machine
machine
language
language

via linker

other
othercode
code
from
fromlibraries,
libraries,
etc.
etc.

25

Java Portability
EXECUTABLES
Payroll.java

Payroll.class

SOURCE

BYTECODE

Windows
WindowsPC
PC
running
runningJVM
JVM

Java
Java
Program
Program

Java
Java
Bytecode
Bytecode

Unix
Unixbox
box
running
runningJVM
JVM

via compiler

via interpreter
JVM

Macintosh
Macintosh
running
runningJVM
JVM

26

Java programming language

Achieves portability by using both a compiler


and an interpreter

Java compiler translates a Java program into an


intermediate Bytecode--not machine language

An interpreter program called the Java Virtual


Machine (JVM) translates each successive
instruction in the Bytecode program to machine
language and immediately runs it
27

Basic Control Structures

A sequence is a series of statements that executes


one after another
Selection (branch) executes different statements
depending on certain conditions
Loop (repetition) repeats statements while certain
conditions are met
A subprogram breaks the program into smaller units
Asynchronous control handles events that originate
outside our program, such as button clicks.

28

SEQUENCE

Statement

Statement

...

Statement

29

SELECTION (branch)
IF Condition THEN Statement1 ELSE Statement2

True

Statement1

Statement
Condition

...
False Statement2

30

LOOP (repetition)
WHILE Condition DO Statement1
False
Condition

...

Tru
e
Statement

31

SUBPROGRAM (function)
SUBPROGRAM1

...

SUBPROGRAM1
a meaningful collection
of SEQUENCE,
SELECTION, LOOP,
SUBPROGRAM

32

ASYNCHRONOUS CONTROL
EVENTHANDLER
EVENT

a subprogram executed
when an event occurs

33

Object-Oriented Programming
A data type is the specification in a
programming language of how
information is represented as data and the
operations that can be preformed on the
data
An object is a collection of data values
and associated operations
A class is a description of one or more
like objects

34

More OOP Vocabulary


Instantiation is the process of
creating an object based on the
description provided by a class
A package is a collection of related
classes

35

An Object of class
OPERATIONS

Time

DATA

Set
Increment
Write
.
.
.

Private data:
hrs

mins

25

secs

42

Time

36

Basic Computer Components


Peripherals
Input Device

Central Processing Unit ( CPU )

Control Unit
Arithmetic Logic Unit

Output Device

Auxiliary
Storage
Device

Memory Unit ( RAM & Registers )

37

Memory Unit

Is an ordered sequence of storage cells,


each capable of holding a piece of data

Each memory cell has a distinct address

The information held can be input data,


computed values, or program
instructions
38

Central Processing Unit (CPU)

Has two components to execute program


instructions - Arithmetic/Logic

Unit performs
arithmetic and logical operations
Control Unit controls the order in which
instructions in the program are
executed
39

Peripheral Devices

Are input, output, or auxiliary storage


devices attached to a computer
Input Devices include keyboard and
mouse
Output Devices include printers, video
display, LCD screens
Auxiliary Storage Devices include disk
drives, CD-ROM and DVD-ROM drives
40

Problem Solving Techniques

ASK QUESTIONS -- about the data, the process,


the output, error conditions
LOOK FOR FAMILIAR THINGS -- certain
situations arise again and again
SOLVE BY ANALOGY -- it may give you a place
to start
USE MEANS-ENDS ANALYSIS -- Determine
the I/O and then work out the details
41

More Problem Solving Techniques

DIVIDE AND CONQUER -- break up large


problems into manageable units
BUILDING-BLOCK APPPROACH -- can you
solve small pieces of the problem?
MERGE SOLUTIONS -- instead of joining
them end to end to avoid duplicate steps
OVERCOME MENTAL BLOCK -- by
rewriting the problem in your own words
42

You might also like