Right Click & Save - Computer Science & Information Systems. BITS

advertisement
BITS Pilani
BITS Pilani
Pilani Campus
Avinash Gautam
Department of Computer Science and Information Systems
BITS Pilani
Pilani Campus
Object-Oriented Programming (CS/IS F213)
Avinash Gautam
avinash@pilani.bits-pilani.ac.in
Chamber# 6121-Y, NAB
Consultation Hour
By appointment through mail
Lecture-1 [OOP Basics]
Programming Paradigms
Structured programming
 Object oriented programming

OOP Concepts




What
What
What
What
is
is
is
is
an object?
a Class?
Inheritance?
an Interface?
3
BITS Pilani, Pilani Campus
Programming Paradigms […1]
• High Level Languages (1960)
– Large complex programs difficult to manage and
maintain
• Structured Programming (1970)
– Logically structure the program separate smaller more
manageable components
– Significant problems persisted
• Understanding the systems we need to create
• Changing existing software as users requirement change
• Modular languages (1980)
– Modula2 and ADA, precursor to modern OO
Languages
BITS Pilani, Pilani Campus
Programming Paradigms […2]
• Object Oriented Paradigm and Component
Based Software Development (1990)
– Became the norm from 2000 onwards
– Lead to the development of software components
where the operation of the software and the data
it operates on are modeled together
– Lead to the development of reusable software
components
• Save significant development time and cost
• Allow better software models to be produced which are
more maintainable and easier to understand
BITS Pilani, Pilani Campus
OOP Concepts
6
BITS Pilani, Pilani Campus
What is an object?
 Look around you and identify some objects
 Real world objects share two characteristics
 They all have state
 They all have behavior
 Identifying the state and behavior for real-world objects is a great
way to begin thinking in terms of object-oriented programming
 Two Questions
 What possible states can this object be in?
 What possible behavior can this object perform?
 Write down your observation
 Real world objects vary in complexity (Radio, Table Lamp)
 Objects may contain other objects
 These real world observations all translate into object oriented
programming
7
BITS Pilani, Pilani Campus




Software objects are conceptually similar to real
world objects: they too consist of state and related
behavior
An object store its state in fields and exposes its
behavior through methods
Methods operate on objects internal state and serve
as the primary mechanism for object-to-object
communication
Hiding internal state and requiring all interaction
through an object’s method is known as data
encapsulation - a fundamental principle of OOP
8
BITS Pilani, Pilani Campus
What is an object? (Contd.)


Bicycle - By attributing state and providing
methods for changing that state, the object
remains in control of how the outside
world is allowed to use it. For example, if
the bicycle only has 6 gears, a method to
change gears could reject any value that is
less than 1 or greater than 6.
Benefits of building code into individual
software objects
 Modularity
 Information-hiding
 Code re-use
 Plug-ability and debugging ease
9
BITS Pilani, Pilani Campus
What is a Class?
• A class is a blueprint or prototype from which objects are
•
•
•
•
created
A class defines the general nature of a collection of
objects of the same type
The process creating an object from a class is called
instantiation
Every object is an instance of a particular class.
There can be many instances of objects from the same
class possible with different values for data
10
BITS Pilani, Pilani Campus
Example
objects
Object
References
redRose
class Rose
blueRose
class
11
BITS Pilani, Pilani Campus
What is Inheritance?
 Different kinds of objects have a certain amount in
common with each other
 For example mountain bikes, road bikes, and tandem
Bikes all share the characteristics of bicycles (current
speed, current pedal cadence, current gear)
 Yet each also defines additional features that make them
different: tandem bicycles have two seats and two sets
of handlebars; road bikes have drop handlebars etc
 Object-oriented programming allows classes to inherit
commonly used state and behaviour from other classes
12
BITS Pilani, Pilani Campus
What is Inheritance?
13
BITS Pilani, Pilani Campus
What is a Interface?
• Objects define their interaction with the outside
world through the methods that they expose
• Methods form the object's interface with the
outside world
• The buttons on the front of your television set,
for example, are the interface between you and
the electrical wiring on the other side of its
plastic casing. You press the "power" button to
turn the television on and off
14
BITS Pilani, Pilani Campus
Questions
state and behaviour
• Real-world objects contain _____
________
fields
• A software object's state is stored in its _____
• A software object's behaviour is exposed through
_______
methods
• Hiding internal data from the outside world, and
accessing it only through publicly exposed methods
is known as data encapsulation
___________
class
• A blueprint for a software object is called a ____
sub-class
• Common behaviour can be defined in a _________
and inherited into a super-class
_______
15
BITS Pilani, Pilani Campus
THANK YOU
1.
The material presented in these slides is used only for academic purpose
2.
Copyright © Oracle Sun Microsystems
16
BITS Pilani, Pilani Campus
Download