Introduction to Object-Oriented Programming - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Introduction to Object-Oriented Programming

Description:

So, Nat'ralists observe, a Flea. Hath smaller Fleas that on them prey, And these have smaller Fleas to bite 'em, And so proceed ad infinitum. -J. Swift. April 3, 1998 ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 35
Provided by: kurtdfens
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Object-Oriented Programming


1
Introduction to Object-Oriented Programming
  • CS 102-02
  • Lecture 1-3

2
Before You Write a Program...
  • Decide on data
  • What input does your program need?
  • What data will it manipulate?
  • What information will it produce?
  • Actions
  • Things your program does

3
Types of Data
  • Related data
  • Automobiles
  • Whole numbers
  • Fractions
  • Sentences

4
How Do Actions and Data Relate?
  • Actions can act on data
  • Square root procedures act on numbers
  • Problem Need different actions for different
    data
  • Actions and data can coexist
  • Objects combine both data and actions into one
    package

5
Driving a Car
  • When you step on the gas in a car, do you think
  • Im calling the accelerate procedure and passing
    it a pink Chevy Malibu and a pedal position.
  • Or, Chevy Malibus know how to accelerate
    already and Im just asking the car to do its
    thing.?

6
The World is Full of Objects I
  • Some objects in the world, and what they can do

Object Actions Chevy Malibus Stop, go,
turn Microscopes Focus, insert slide, remove
slide Hotels Make up rooms, check in guests
7
The World is Full of Objects II
  • Some objects in the world, and what they know

Object Data Chevy Malibus Gas level, coolant
level, top speed Microscopes Slide light
on? Hotels Number of conference rooms
8
How are Objects Related?
So, Nat'ralists observe, a Flea Hath smaller
Fleas that on them prey, And these have smaller
Fleas to bite 'em, And so proceed ad infinitum.
-J. Swift
9
Object Relationships
  • Objects can contain other objects
  • Composition
  • Has a (or hath if youre an English author)
    relationship
  • Objects are more specific versions of other
    objects
  • Inheritance
  • Is a relationship

10
Inheritance
11
Same Car, Different View
12
The Welcome Applet
// A first program in Java // import Applet
class import java.applet.Applet // import
Graphics class import java.awt.Graphics public
class Welcome extends Applet public void
paint( Graphics g ) g.drawString(
"Welcome to Java Programming!", 25, 25 )
A Welcome is a kind of Applet
13
Reuse, Reuse, Reuse
Writing good software is hard, so avoid it
whenever possible. - Me
  • O-O concepts make it easy to reuse
  • Inheritance Someone else creates the general,
    and you add specifics
  • Composition Put the puzzle pieces together

14
Building an Airport
  • What actions do airports know how to perform?
  • What attributes do airports have?
  • Are airports a kind of something?
  • What kinds of airports are there?
  • Do airports have logical subparts?

15
Just Like Summer Vacation, -- No Class
  • A class is a specification of
  • Structure (the data, a.k.a. instance variables)
  • Actions (methods)
  • Inheritance (parents, or derived structure and
    actions)
  • for objects.

16
Examples of Classes
  • Related groups of things constitute a class
  • Share the same structure, actions (behavior) and
    similarly derived
  • Aardvarks
  • Airports
  • Applets

17
Classes in Java
If youll need a group of related objects, create
a class class Point int x, y Define a class
with class classname Class definition (some
data and/or some actions)
18
Classes Have Data
  • Airport class
  • Gates
  • Runways
  • Airlines
  • Class data goes inside the class definition,
    usually at the very beginning

public class Time1 private int hour //
0 - 23 private int minute // 0 - 59
private int second // 0 - 59
19
Classes Know Actions
  • Classes arent just data, but actions too
  • At the airport
  • Delivering baggage
  • Preparing for planes arrival
  • Class actions are called methods

20
Types
  • Type is similar to class a collection of data
    and actions
  • Usually, well consider type and class to be the
    same thing
  • In Java there are interfaces and classes

21
Abstract Data Types
  • ADTs (from HTP 6.16) are implemented in Java with
    classes
  • An airport class represents the abstract notion
    of a class
  • The Platonic form

22
Objects are Instances
Airport OHare Class Object
  • Classes are the overarching concepts
  • Concept airport is an abstract notion
  • Objects are instances of those classes
  • OHare, LAX and Heathrow are concrete instances
    of airports

23
Creating an Object
Give the variable a name
Some airport specification
Use new Airport peotone new Airport(Peotone,
IL)
What type of variable is it?
You want a new what?
24
Java Object Magic
  • Creating objects is easy in Java
  • Forget about memory cuz Javas simple
  • Want another airport, just call new again!

25
Creating Instances from Classes
  • Real-world
  • Spend money to hire construction crews
  • Lay asphalt
  • Build roads
  • In Java, build airports with constructors
  • Special methods defined in a class which set up
    new objects
  • Same name as class

26
Building Time
public class Time1 private int hour //
0 - 23 private int minute // 0 - 59
private int second // 0 - 59 // Time1
constructor initializes each // instance
variable to zero. Ensures // that each Time1
object starts in a // consistent state.
public Time1() setTime( 0, 0, 0 )
Constructors have the same name as the class
Anybody can create a new Time1 object
27
Hiding (a.k.a. Encapsulating) Data
  • Airport operations
  • Do you know
  • Outer marker?
  • NDB?
  • ATIS Frequency for OHare?
  • Use the airport because you only need to know a
    little
  • Parking lot, ticket counter, baggage claim, ...

28
Why Hide Data?
  • Cant break it
  • What if you could change the tower frequency?
  • Double-check data
  • Easier for you
  • What if you couldnt get on a plane without
    knowing how to operate a jetway?
  • Inner workings can change
  • Change the guts of the airport, but dont change
    the ticket counter, baggage claim, ...

29
Hiding Data in Java
public class Time1 private int hour //
0 - 23 private int minute // 0 - 59
private int second // 0 - 59 // Time1
constructor initializes each instance variable
// to zero. Ensures that each Time1 object starts
in a // consistent state. public Time1()
setTime( 0, 0, 0 )
Nobody can mess with hour, minute or
second Nobody can set hour ABC or minute
456.45
30
Hiding Time
public class Time1 private int hour //
0 - 23 private int minute // 0 - 59
private int second // 0 - 59 // Time1
constructor initializes each // instance
variable to zero. Ensures // that each Time1
object starts in a // consistent state.
public Time1() setTime( 0, 0, 0 )
Anybody can create a new Time1 object
One of our reasons for data hiding
31
Modular Design
Airport Modules
Passenger Terminal
Maintenance Storage
  • View related abstractions together
  • Modules are useful only if theyre loosely
    connected
  • Passenger Terminal and Maintenance, not a Door
    and its hinges

32
Modularity in Java
  • Java has two ways to separate modules
  • Classes
  • Use class to define
  • Separate classes with access modifiers
  • Packages
  • Group related classes together
  • Optionally, declare a package using package in
    the first line of the file
  • package transportation.airport
  • Without package, code is part of the default
    package

33
Object-Oriented Means I
  • Objects Combining data and actions under one
    roof
  • Hierarchies An ranking of abstractions
  • Inheritance The is a hierarchy
  • Composition The part of hierarchy
  • Abstraction What distinguishes an object from
    other kinds objects, given a particular
    perspective

34
Object Oriented Means II
  • Hiding data Only the essentials are visible to
    the outside world
  • Modularity Group related abstractions together
Write a Comment
User Comments (0)
About PowerShow.com