Object-Oriented Programming Basics - PowerPoint PPT Presentation

About This Presentation
Title:

Object-Oriented Programming Basics

Description:

Object-Oriented Programming Basics Reading for this week : BG 1-4.10 UNIX 1,2,4,9 JAVA 0,1 BG = Beginner s Guide UNIX = Harley Hahn s Student guide to Unix ... – PowerPoint PPT presentation

Number of Views:155
Avg rating:3.0/5.0
Slides: 53
Provided by: vm7
Learn more at: https://www.cs.rit.edu
Category:

less

Transcript and Presenter's Notes

Title: Object-Oriented Programming Basics


1
Object-Oriented Programming Basics
  • Reading for this week
  • BG 1-4.10
  • UNIX 1,2,4,9
  • JAVA 0,1
  • BG Beginners Guide
  • UNIX Harley Hahns Student guide to Unix,
    Harley Hahn
  • JAVA An Introduction to Object Oriented
    Programming with Java, Thomas Wu

2
How can one design a program?
  • Top-down structured design uses algorithmic
    decomposition where each module denotes a major
    step in some overall process
  • Object-oriented design divides the problem into
    a set of objects that interacts to solve the
    problem. Your programs properties and behaviors
    are modelled based upon real objects like cars,
    books, houses, etc.

3
Why OOD?
  • Software is complex (too many people is doing too
    many things the mess is inevitable ? )
  • One of the main goals in programming is to avoid
    the redundancy and objects can help to do this
    (inheritance)
  • Objects can help increase modularity through data
    hiding (encapsulation)

4
OK, but what is object ?
  • An object is a thing, either tangible or
    intangible.
  • An object-oriented program consists of many
    objects.
  • An object is composed of identity, state
    (attributes, data, and their current values) and
    behavior (operations) .
  • Identity? State? Behavior? Too many new
    expressions Ill get a headache!!!

5
Identity, State, Behavior
  • Identity is the property of an object that
    distinguishes it from all other objects.
  • The failure to recognize the difference between
    the name of the object and the object itself is
    the source of many errors in object-oriented (OO)
    programming.

6
Identity, State, Behavior
  • The state of an object encompasses all of the
    (static) properties of the object plus the
    current (dynamic) values of each of these
    properties
  • A property is an inherent or distinctive
    characteristic, trait, quality, or feature that
    contribute to making an object uniquely that
    object
  • We will use the word attribute, or data member,
    to refer to the state of an object

7
Examples of State
  • Properties
  • Elevators travel up or down
  • Vending machines accept coins
  • Clocks indicate the current time
  • Values
  • Current floor
  • Number of coins deposited
  • The number of minutes since the last hour

8
Identity, State, Behavior
  • Behavior is how an object acts and reacts, in
    terms of state changes and interactions with
    other objects.
  • An operation is some action that one object
    performs upon another in order to elicit a
    reaction.
  • We will use the word method to describe object
    behavior in java.
  • Invoking a method causes the behavior to take
    place.

9
Objects and Classes graphical representation
  • A graphical representation of an object
  • lt Object name gt
  • A graphical representation of a class
  • lt Class name gt

10
Object example
Audi 6
BMW Z3
Corvette
  • Notice that all objects are of the same type.
    All objects are cars!

11
Classes
  • Classes are the definitions (or blueprints) used
    to create objects. Id say descriptions of
    objects.
  • To make a car the manufacturer must first have a
    design from which to build the first car. Then,
    once all the problems are worked out, the design
    is used to build all the cars of that model.

12
Objects
  • An object is an instance of a class.
  • If we have a class definition called Car, then we
    can think of Audi, BMW, and Corvette as each
    being an instance (object) of the class Car,
    i.e., they are each a type of car.

13
Object example
Audi 6
BMW Z3
Corvette
Car
Car
Car
  • Notice that all objects are of the same type.
    All objects are cars!

14
Classes and Objects
  • An object is an instance of exactly one class!!!
  • Corvette can not be an instance of a car class
    and an instance of a plane class at the same
    time.
  • An instance of a class, an object, belongs to
    that particular class.
  • A Corvette is a car ? Corvette belongs to the
    class Car.

15
Classes
  • Once a class is defined you can create as many
    instances of the class (objects from the class)
    as you would like.
  • Once a blue print is completed for the 2003
    Porsche 911, Porsche will use an assembly line to
    build as many instances of the 2003 Porsche 911
    as they wish.

16
Class car and objects- graphically
Car
This line shows an instance-of relationship.
Audi 6
BMW Z3
Corvette
Car
Car
Car
17
Defining a class
  • Properties are variables which describe the
    essential characteristics of an object.
  • Properties of a car color, model, make, how many
    doors, transmission type, direction of movement,
    etc.
  • Behaviors are methods that describe how the
    object behaves and how the properties may be
    modified.
  • Behavior of a car braking, changing gears,
    opening doors, moving forwards or backwards, etc.

18
Defining a class
Behavior or Method 1 Behavior
Behavior or
or
Method 4
Method 2 Behavior or Method 3
Properties or Instance Variables
19
Instance variables
  • The class definition will include parameter
    definitions (properties) that represent data
    about a particular object, instance variables.
  • Example, Jessica's car may have 4 gallons of gas
    in it while Clint's car has 10 gallons.
  • The amount of gas in each car may change without
    affecting the amount of gas in the any other
    cars.
  • All instances (objects) of a class will have a
    set of instance variables that are specific to
    that individual object.
  • The combination of the values of these instance
    variables is known as the objects state.

20
Instance variables
Car
MaxSpeed
Audi 6
BMW Z3
Corvette
Car
Car
Car
MaxSpeed 155
MaxSpeed 165
MaxSpeed 145
21
Class variables
  • The class definitions may also include parameter
    definitions that represent data that is shared by
    all class instances (objects), called class
    variables.
  • In the case of the car class, we will define a
    maximum allowed speed, by the law (variable
    LMaxSpeed). This will be the same for each
    individual car (thats why your car have those
    annoying speed limiters ?).

22
Class variables
Car
MaxSpeed LMaxSpeed155
Audi 6
BMW Z3
Corvette
Car
Car
Car
MaxSpeed 155
MaxSpeed 165
MaxSpeed 145
23
Class variables
  • Class variables may also be used to keep track of
    things such as how many instances of a class
    exist.
  • Example lets create a counter the records how
    many cars are in the garage.

24
Class variables
Car
MaxSpeed LMaxSpeed155 NumCars 3
Audi 6
BMW Z3
Corvette
Car
Car
Car
MaxSpeed 155
MaxSpeed 165
MaxSpeed 145
25
Constant parameters
  • If it was variables instead of parameters, that
    would be oxymoron.
  • If there is a parameter whose value should not
    change while your program is running, that
    parameter type is called a constant.
  • The LMaxSpeed parameter that we defined for the
    Car class is a constant. The maximal speed is
    limited by the low, and it cannot be changed once
    the car has been built.
  • What about Z3 and 165 mph? Well, the owner has
    just made an illegal modification !!!

26
Messages
Audi 6 turnOnHazard()
  • For Objects
  • The object to whom the message is being sent.
  • The name of the method (behavior) that object is
    to execute.
  • Any parameters (variables) needed by that method.
  • For Humans
  • Who the message is for.
  • What we want the person to do.
  • What information is needed to do it.

27
Messages and Methods
  • In order to process a message, an object needs to
    have a method defined for the requested task.
  • A method is a small, well-defined piece of code
    that completes a specific task.
  • For our previous example, we need to define a
    method to turn on the car's hazard lights.

28
Messages and Methods
Car
MaxSpeed LMaxSpeed155 NumCars 3 turnOnHazard()
Audi 6
BMW Z3
Corvette
Car
Car
Car
MaxSpeed 155 turnOnHazard()
MaxSpeed 165 turnOnHazard()
MaxSpeed 145 turnOnHazard()
29
Instance methods
  • Each class can have methods that are specific to
    each object, called instance methods.
  • These can only affect that object's parameters,
    i.e., its instance variables.
  • Example If BMW has 4 gallons of gas and someone
    puts 6 more gallons of gas in his/her car, the
    car now has 10 gallons. The amount of gas in Audi
    and Corvette is unchanged.

30
Messages and Methods
Car
MaxSpeed LMaxSpeed155 NumCars
3 turnOnHazard() addGass(amount)
Audi 6
BMW Z3
Corvette
Car
Car
Car
MaxSpeed 155 turnOnHazard() addGass(amount)
MaxSpeed 165 turnOnHazard() addGass(amount)
MaxSpeed 145 turnOnHazard() addGass(amount)
31
Methods
  • It is also possible that you want information
    from an object in this case, you would define a
    method that sends (returns) a message back to the
    requester containing that information.
  • We need to know how much gas is in our cars, so
    we will create a new method that returns the
    value of GasLevel variable for our car.

32
Messages and Methods
Car
MaxSpeed GasLevel LMaxSpeed155 NumCars 3
Audi 6
Corvette
BMW Z3
Car
Car
Car
MaxSpeed 155 GasLevel 4 turnOnHazard() addGass
(amount) getGasLevel()GasLevel
MaxSpeed 145 GasLevel 6 turnOnHazard() addGass
(amount) getGasLevel()GasLevel
MaxSpeed 165 GasLevel 10
33
Class methods
  • Class methods are used to get or manipulate
    information about all objects created from the
    class.
  • Typically, class methods are changing class
    variables. For example
  • Each time we move the car in or out of the
    garage, we need to add/subtract one to the number
    of cars carIn( ) carOut( )
  • Also, we may want to know how many cars are
    actually in the garage getNumCars( )

34
Messages and Methods
Car
carIn()
carOut()
turnOnHazard()
getNumCars()NumCars
addGass(amount)
getGasLevel()GasLevel
Audi 6
BMW Z3
Corvette
Car
Car
Car
MaxSpeed 155 GasLevel 4 turnOnHazard() addGass
(amount) getGasLevel()GasLevel
MaxSpeed 165 GasLevel 10 turnOnHazard() addGas
s(amount) getGasLevel()GasLevel
MaxSpeed 145 GasLevel 6 turnOnHazard() addGass
(amount) getGasLevel()GasLevel
35
Types of methods
  • There are 4 basic types of methods
  • Modifier (sometimes called a mutator)
  • Changes the value associated with an attribute of
    the object (or class)
  • Accessor
  • Returns the value associated with an attribute of
    the object (or class)
  • Constructor
  • Called once when the object is created (before
    any other method will be invoked)
  • Destructor
  • Called when the object is destroyed

36
OOP
  • When writing object-oriented programs, first one
    must define the classes (like Car).
  • Then, while the program is running, the instances
    of the classes (objects) (such as Audi, BMW,
    Corvette in our example) are created.

37
OOP
  • Object-oriented programming allows the programmer
    to hide the implementation details from the other
    objects and the users.
  • In other words the implementation is transparent
    to the other objects or the user.
  • Example Although our computers all are different
    under the hood, we dont need to know whats
    there to be able to use them.

38
OOP - benefits
  • An object can be written and maintained
    separately from the rest of the program,
    modularity.
  • An object has a public face that it uses to
    communicate with other objects, but other objects
    can not directly access its instance variables,
    information hiding.

39
Inheritance
  • All classes in Java are organized into a class
    hierarchy.
  • The highest level classes are very general and
    the lower level classes are more specific.
  • The lower level classes are based upon the higher
    level classes and inherit instance variables and
    methods from those higher level class. They also
    may contain their own (new) instance variables
    and methods beyond the higher level class
    definition.

40
Inheritance
  • A higher level class is called a superclass a
    lower level class is called a subclass.
  • A subclass may also be a superclass
  • Inheritance allows you to define certain
    behaviors once and then to reuse those behaviors
    over and over again in the subclasses. This is
    called reusability.

41
Inheritance
  • Our Car class is very general.
  • Let's define a new class called BMW that contains
    the parameters model, color, engine size.

42
Inheritance
Car
BMW
43
Inheritance
  • Now let's define two new classes. One for the Z3
    and another for the 3 Series Sedan.
  • What might be some of the differences between the
    two classes?
  • Number of doors (3, 5)
  • Roof (soft or hardtop)
  • Therefore, we add variables NumDoors and Roof

44
Inheritance
Car
45
Views of the class
  • A class can be viewed as a sort of contract that
    specifies what instances of the class can, and
    cannot do
  • It is possible to distinguish between the outside
    and inside view of a class
  • The interface of a class provides its outside
    view and emphasizes the abstraction
  • The implementation of a class is its inside view

46
Access
  • Most classes provide three levels of access to
    their members (state and behavior)
  • Public
  • The part of the class that is visible to all
    clients of the class
  • Protected
  • The part of the class that is only visible to
    subclasses of the class
  • Private
  • A part of the class that is not visible to any
    other classes

47
Primitive data types
  • What ?!!! Primitive? What is it?
  • Certain basic data types are built into Java
  • Alphabetical char
  • Integral int, byte, short, long
  • Real float, double
  • Logical boolean
  • Java supports 8 primitive types (i.e. 4 basic
    types)

48
Primitive data types
Type Description Bits Range of values
boolean Boolean 1 False, true
byte integers, very small 8 -128 to 127
short integers, small ones 16 -32768 to 32767
int integer 32 -2,147,483,648 to 2,147,483,647
long integer, very big ones 64 /- 9.2 1018
float floating point number 32 /-3.402923471038
double floating point number, very accurate 64 /-1.7976931348623157010308
char character 16 Unicode character (eg \u12d1)
49
Primitive data types
  • When typing integer into a program, the number
    must have an L at the end 3932354162L
  • Real numbers are represented in scientific
    notation
  • mantissa -1,1
  • exponent (powers of two)

50
Real data type
  • Characterized by precision and range
  • Precision represents number of significant
    digits that is represented in the number. Depends
    upon the number of bits in the mantissa.
  • Range represents the difference between the
    largest and smallest numbers that can be
    represented. Depends upon the number of bits in
    the exponent.
  • float
  • 24b mantissa 8b exponent
  • 6-7 decimal digits of precision
  • double
  • 53b mantissa 11b exponent
  • 15-16 decimal digits of precision

51
Round-off error
  • When a double is stored to a float, part of the
    number is lost. In this situation, the seven most
    significant digits are preserved and the rest of
    the information is lost.

52
Char
  • Character values may represent both printable and
    non-printable characters
  • Printable a, ,
  • Non-printable \n new line, \t tab,
  • Unicode 16b support for every character in the
    world \u0000 to \uFFFF
Write a Comment
User Comments (0)
About PowerShow.com