[go: up one dir, main page]

0% found this document useful (0 votes)
74 views85 pages

ICS 2201 Lecture 1 Overview of OO Paradigm

The document discusses object oriented programming principles including procedural programming and its disadvantages. It provides examples of procedural programming using bank accounts and compares it to object oriented programming. It also defines key concepts in object oriented programming like objects, classes, methods and attributes.

Uploaded by

gatmachyuol
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views85 pages

ICS 2201 Lecture 1 Overview of OO Paradigm

The document discusses object oriented programming principles including procedural programming and its disadvantages. It provides examples of procedural programming using bank accounts and compares it to object oriented programming. It also defines key concepts in object oriented programming like objects, classes, methods and attributes.

Uploaded by

gatmachyuol
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 85

ICS 3201: Object Oriented

Programming
Lecture 1:Review of OO Programming
Principles

Instructor: S.C Kiptoo, Computing


Department, ICSIT
Email: skiptoo@jkuat.ac.ke
Procedural Programming
 Using functions and procedures
 Function & program is divided into modules
commensurate with main tasks
 Every module has its own data and function
which can be called by other modules.
 Other program modules allowed to modify
data independently
Procedural Programming
 This programming paradigm is essentially an
abstraction of machine /assembly language.
 Program is organized around procedures.

 Focus on data structures, algorithms and

sequencing of steps
Programs = Algorithm + Data Structure
An algorithm is a set of A data structure is a construct
instructions for solving a used to organize data in a specific
problem way.

Most computer languages, from early examples like FORTRAN and ALGOL to more
recent languages like C and Ada, have been imperative or procedural.
Procedural Programming - Example
 Writing a program to handle bank accounts
 Customer can open different type of accounts, such as
cash account, check account and Loan account.
 For each account, customer can deposit, withdraw or
transfer.
 How is it implemented in HLL such as C or Java?
 As a set of procedures/modules acting on a piece of data
Procedural Programming - Example
Programs = Algorithm + Data Structure
Struct account {
char name; Procedure 1: Deposit() {...}
Data Structure: int accountId;
float balance; Procedure 1: Withdraw() {...}
Bank Account
float interestYTD;
char accountType; Procedure 1: Transfer() {...}
};

 A procedural programming language usually consists of :


 A collection of variables, each of which at any stage contains a
certain value (a number, a character, a string of characters, etc)
 A collection of statements that change the values of these variables.
 The building-block of this type program is the procedure or
function.
Procedural Programming - Disadvantages
 Procedures and data are clearly separated.
 Missing link in transformation of concepts between
analysis & implementation.
 Design models are a long step from implementation.
 Procedures are often hard to reuse.
 Programs are often hard to extend and maintain.
Primitive vs Reference Data Types
1. byte … Wraps to Byte
2. int … Wraps to Integer
3. short … Wraps to Short
4. long … Wraps to Long
5. bolean … Wraps to Bolean
6. double … Wraps to Double
7. float … Wraps to Float
8. char … Wraps to Char
Questions: 1. Define typing and show its advantages.
2. Why does java wrap primitive types to objects and what are
the advantages of doing so?
3. Why do we say Java is 100% OO yet it processes primitive
data types as non objects?
Object-Oriented Programming: OOP
 A design and programming technique that bridges
the gap between design and coding…How?
 Some concepts and terminology:
 object - usually a person, place or thing (a noun)
 method - an action performed by an object (a verb)
 Class aka type - a category of similar objects (such as
automobiles)
 Objects have both data and methods
 Objects of the same class have the same data
elements and methods
 Objects send and receive messages to invoke
actions
Object-Oriented Programming - Example
 The building-block of this type program is class
or objects.

BankAccount
balance : float
interestYTD : float
owner : char
account_number : int

MakeDeposit(amount : float) : void


WithDraw(amount : float) : float
Transfer(to : BankAccount, amount : float) : bool
What Is Object Technology?
 Defined as
 A set of principles guiding software
construction together with languages,
databases, and other tools that support
those principles.
(Object Technology - A Manager’s Guide,
Taylor, 1997)
Strengths of Object Technology
 A single paradigm
 A single language used by users, analysts, designers,
and implementers
 Bridges the gap between design and implementation
 Facilitates architectural and code reuse…..
 Models more closely reflect the real world
 More accurately describes corporate entities
 Decomposed based on natural partitioning
 Easier to understand and maintain
 Stability
 A small change in requirements does not mean
massive changes in the system under development
 Adaptive to change
Basic concepts of OO
Basic Concepts of Object Orientation
 Object
 Class
 Message
 Basic Principles of Object Orientation
 Abstraction
 Encapsulation
 Inheritance
 Polymorphism
 Interface and Abstract Class
What Is an Object?
 Informally, an object represents an entity, either
physical, conceptual, or software.

 Physical entity

Truck

 Conceptual entity

Chemical
 Software entity Process

Linked List
Example
Real-world objects have attributes and behaviors.

Examples:
 Dog
 Attributes: breed, color, hungry, tired, etc.
 Behaviors: eating, sleeping, etc.
 Bank Account
 Attributes: account number, owner, balance
 Behaviors: withdraw, deposit
Software Objects
Writing software often involves creating a
computational model of real-world objects and
processes.

 Object-oriented programming is a methodology


that gives programmers tools to make this
modeling process easier.
 Software objects, like real-world objects, have
attributes and behaviors.
 Your best bet is to think in terms as close as
possible to the real world
A More Formal Definition
 An object is an entity with Attributes

a well-defined boundary
and identity that
encapsulates state and
behavior.
 State is represented by
attributes and relationships.
 Behavior is represented by
operations, methods, and
state machines.
Object
Operations
An Object Has State
 The state of an object is one of the possible
conditions in which an object may exist.
 The state of an object normally changes over
time.

Name: J Clark
Employee ID: 567138

Professor Clark HireDate: 07/25/1991


Status: Tenured
Discipline: Finance
Name: J Clark
MaxLoad: 3
Employee ID: 567138
Date Hired: July 25, 1991
Status: Tenured
Professor Clark
Discipline: Finance
Maximum Course Load: 3 classes
An Object Has Behavior
 Behavior determines how an object acts and reacts.
 The visible behavior of an object is modeled by the
set of messages it can respond to (operations the
object can perform).

Ac
ce
ptC

s ()
ou

de
r

ra
se

alG
Of
fer

in
itF
ing

bm
( )

Su
Professor Clark
Se
tM
Professor Clark’s behavior ax
Lo
a d(
)
Submit Final Grades
TakeSabbatical()
Accept Course Offering
Take Sabbatical Professor Clark
Maximum Course Load: 3 classes
An Object Has Identity
 Each object has a unique identity, even if the state
is identical to that of another object.

Professor “J Clark” teaches Professor “J Clark” teaches


Biology Biology
Objects Need to Collaborate

 Objects are useless unless they can collaborate


together to solve a problem.
 Each object is responsible for its own behavior and
status.
 No one object can carry out every responsibility on
its own.
 How do objects interact with each other?
 They interact through messages.
Software Objects - Cont’d
In traditional programming languages (Fortran, Cobol, C, etc)
data structures and procedures are defined separately.
 In object-oriented Bank
languages, they are defined
Account
together.
 An object is a collection Account
of attributes and the Account
behaviors that operate
number:
on them.
balance:
 Variables in an object are
called attributes. deposit()
 Procedures associated with withdraw()
an object are called methods.
What Is a Class?
 A class is a description of a set of objects that
share the same properties and behavior.
 An object is an instance of a class.
Class: Professor

Objects Professor
Attributes - name
- employeeID : UniqueId
Professor Smith - hireDate
- status
- discipline
- maxLoad
Professor Mellon
+ submitFinalGrade()
Professor Jones + acceptCourseOffering()
+ setMaxLoad()
Operations + takeSabbatical()
Classes
The definitions of the attributes and methods of an object are
organized into a class. Thus, a class is the generic definition
for a set of similar objects (i.e. Person as a generic definition
for say Jane, Paul and Susan)

 A class can be thought of as a template used to create a set


of objects.
 A class is a static definition; a piece of code written in a
programming language.
 One or more objects described by the class are
instantiated at runtime.
 The objects are called instances of the class.
Classes - Cont’d
 Each instance will have its own distinct set of
attributes.
 Every instance of the same class will have the
same set of attributes;
 every object has the same attributes but,
 each instance will have its own distinct values for
those attributes.
Bank Example
 The "account" class
describes the attributes class: Account
and behaviors of bank
accounts. number:
 The “account” class balance:
defines two state variables
deposit()
(account number and
balance) and two methods withdraw()
(deposit and withdraw).
Bank Example - Cont’d
 When the program runs Instance #1
there will be many number: 054
instances of the account
class. balance: $19
 Each instance will have its Instance #2
own account number and number: 712
balance (object state)
balance: $240
 Methods can only be
invoked . Instance #3

number: 036

balance: $941
Encapsulation
When classes are defined, programmers can specify that
certain methods or state variables remain hidden inside the
class.
 These variables and methods are Visible Methods
accessible from within the class, but not
Hidden
accessible outside it. State
 The combination of collecting all the Variables
and
attributes of an object into a single class Methods
definition, combined with the ability to hide
some definitions and type information Visible Variables
within the class, is known as
encapsulation.
Class
Definition
Graphical Model of an Object
Instance balance()
variables

withdraw() theBalance deposit()


acctNumber

Methods
accountNumber()

State variables make up the nucleus of the object.


Methods surround and hide (encapsulate) the state
variables from the rest of the program.
Instance Methods and Instance Variables
The methods and variables described in this module
so far are known as instance methods and
instance variables.

 These state variables are associated with the one


instance of a class; the values of the state variables
may vary from instance to instance.
 Instance variables and instance methods can be
public or private.
 It is necessary to instantiate (create an instance of)
a class to use it’s instance variables and instance
methods.
Class Methods and Class Variables
In addition to instance methods and instance
variables, classes
can also define class methods and class variables.

 These are attributes and behaviors associated


with the class as a whole, not any one instance.
 Class variables and class methods can be public
or private.
 It is not necessary to instantiate a class to use
it’s class variables and class methods.
Class Variables
 A class variable defines an attribute of an entire
class.In contrast, an instance variable defines an
attribute of a single instance instance
of a class. variables

Account
class
variable count: 3 num: 036
num: 054 num: 712
bal: $19 bal: $240 bal: $941
printCount()
Class
method
A Sample Class
Class: Automobile
Data Items: Methods:
 manufacturer’s name  Define data items
 model name (specify
manufacturer’s name,
 year made
model, year, etc.)
 color  Change a data item
 number of doors (color, engine, etc.)
 size of engine  Display data items
 etc.  Calculate cost
 etc.
The Relationship Between Classes and Objects
 A class is an abstract definition of an object.
 It defines the structure and behavior of each object in the
class.
 It serves as a template for creating objects
 Objects are grouped into classes.
 An object is an instance of a class.
Class: Professor
From Real World
Professor
Professor Jones Professor Smith abstracting
Objects
- name
- employeeID : UniqueId
- hireDate
- status
- discipline
Professor Mellon - maxLoad

instancing + submitFinalGrade()
J Clark : Objects + acceptCourseOffering()
+ setMaxLoad()
Professor + takeSabbatical()
To computer World
What Is an Attribute?
 An attribute is a named property of a class that
describes a range of values instances of the
property may hold.
 A class may have any number of attributes or no
attributes at all.

Student
- name
- address
Attributes
- studentID
- dateOfBirth
Attributes in Classes and Objects

Class name: M. Modano


address: 123 Main
studentID: 9
dateofBirth: 03/10/1967

Student Objects
- name
- address
- studentID
- dateOfBirth
name: D. Hatcher
address: 456 Oak
studentID: 2
dateofBirth: 12/11/1969
What Is an Operation?
 An operation is the implementation of a service
that can be requested from any object of the class
to affect behavior.
 A class may have any number of operations or
none at all.

Student

+ get tuition()
+ add schedule()
Operations + get schedule()
+ delete schedule()
+ has pre-requisites()
Example: class Professor
class Professor {
private String name;
private int age; Professor
private String speciality;
- name : String
- age : int
public Professor (String sm, int ia, String ss) {
- speciality : String
name = sm;
age = ia;
+getName() : String
speciality = sst; +getAge() : int
} +getSpeciality() : String
public String getName () { return name;}
public int getAge () { return age;}
public String getSpeciality () {
return speciality;}
}
Example : Instance of Professor
wang : Professor

name = “wang”
age = 35
speciality = “computer”

Professor wang = new Professor (“wang”, 35,


“computer”);
What is a message?
 A specification of a communication between objects that
conveys information with the expectation that activity will
ensue
One object asks another object to perform an operation.

What is your name?

Professor wang
wang.getName()
Example: Object Interaction
 The OrderEntryForm wants Order to calculate the
total dollar value for the order.

()
ta l
rTo
e
calculateOrderTotal()

rd
te O
la
lcu
orderID

Ca
date
salesTotal
tax
shipDate
Message

OrderEntryForm Order

The class Order has the responsibility to calculate the total dollar value.
Basic Principles of Object Orientation

Object Orientation

Polymorphism
Encapsulation

Inheritance
Abstraction
What Is Abstraction?
 Abstraction can be defined as:
 Any model that includes the most important, essential, or distinguishing
aspects of something while suppressing or ignoring less important,
immaterial, or diversionary details. The result of removing distinctions so
as to emphasize commonalties.
(Dictionary of Object Technology, Firesmith, Eykholt, 1995)
 Abstraction
Emphasizes relevant characteristics.
Suppresses other characteristics.

BriefCase
- Capacity
- Weight
+ open()
+ close()
Example: Abstraction

Student Professor

Course Offering (9:00 AM,


Course (e.g. Algebra)
Monday-Wednesday-Friday)
What Is Encapsulation?
 Encapsulation means to design, produce, and
describe software so that it can be easily used
without knowing the details of how it works.
 Also known as information hiding

An analogy:
 When you drive a car, you don’t have know the

details of how many cylinders the engine has or


how the gasoline and air are mixed and ignited.
 Instead you only have to know how to use the

controls.
What Is Encapsulation?
Hide implementation from clients
 clients depend on interface

Improves Resiliency
Encapsulation Illustrated
Professor Clark
 Professor Clark
needs to be able to Ac
ce
teach four classes ptC

s ()
de
ou

ra
rs e
in the next

lG
Of

ina
fer

itF
ing
semester.
Name: J Clark

bm
Su
Employee ID: 567138 ()
HireDate: 07/25/1991
Status: Tenured
Se
SetMaxLoad(4) tM Discipline: Finance
ax MaxLoad:4
Lo
ad
( )
TakeSabbatical()
Encapsulation – Information/Implementation hiding

Information which can’t be


accessed by client
Balance
Interface insterestYTD
Owner
Client Deposit()
Account_number
Withdraw()
Transfer()
Deposit() {…}
Withdraw() {…}
Transfer() {…}

Implementation details which


are invisible for client.
What Is Inheritance ?

 Inheritance —a way of organizing classes


 Term comes from inheritance of traits like eye
color, hair color, and so on.
 Classes with properties in common can be
grouped so that their common properties are
only defined once.
 Is an “is a kind of” relationship
An Inheritance Hierarchy
Vehicle

Automobile Motorcycle Bus

Sedan Sports Car School Bus Luxury Bus

What properties does each vehicle inherit from the types of


vehicles above it in the diagram?
Example: Single Inheritance
 One class inherits from another.
Ancestor
Account
- balance
Superclass - name
- number
(parent)
+ withdraw()
+ createStatement()

Inheritance
Relationship

Savings Checking
Subclasses

Descendents
Example: Multiple Inheritance
 A class can inherit from several other classes.

FlyingThing Animal

Multiple Inheritance

Airplane Helicopter Bird Wolf Horse

Use multiple inheritance only when needed and


always with caution!
Polymorphism
 Polymorphism—the same word or phrase can be
mean different things in different contexts
 Analogy: in English, bank can mean side of a river
or a place to put money
 In Java, two or more classes could each have a
method called output
 Each output method would do the right thing for
the class that it was in.
 One output might display a number whereas a
different one might display a name.
What Is Polymorphism?
 The ability to hide many different implementation
behind a single interface.

Manufacturer B
Manufacturer A Manufacturer C

OO Principle:
Encapsulation
Example: Polymorphism
Get Current Value

get get
Cu Cu get
rr e rr e Cu
ntV ntV rr e
alu alu ntV
e( ) e( ) alu
e( )

Stock Bond Mutual Fund


What is an Interface?
 An interface is a collection of operations that specify
a service of a class or component.
 Interfaces formalize polymorphism
 Interfaces support “plug-and-play” architectures
‘How’ Tube
<<Interface>>
Shape

‘What’ Pyramid
draw()
move()
scale()
rotate() Cube

Realization relationship (stay tuned for realization relationships)


How Do You Represent An Interface?
Tube
Elided/Iconic
Representation
(“lollipop”) Pyramid

Shape
Cube

Tube
Canonical
<<Interface>>
(Class/Stereotype) Shape
Representation Pyramid
draw()
move()
scale()
rotate() Cube

(stay tuned for realization relationships)


What is an Abstract Class?
 An abstract class is a class that may not has any direct
instances.
 In the UML, you specify that a class is abstract by writing its
name in italics.
 An abstract operation is an operation that it is incomplete
and requires a child to supply an implementation of the
operation.
 In the UML, you specify an abstract operation by writing its
name in italics.

Shape
Abstract class
{abstract}
draw () {abstract} Abstract operation

Circle Rectangle
Inheritance
The advantage of making a new class a subclass is
that it will
inherit attributes and methods of its parent class
(also called
the superclass).

 Subclasses extend existing classes in three ways:


 By defining new (additional) attributes and methods.
 By overriding (changing the behavior) existing
attributes and methods.
 By hiding existing attributes and methods.
Subclasses
When a new class is developed a programmer can
define it to
be a subclass of an existing class.
 Subclasses are used to define special cases,
extensions, or other variations from the originally
defined class.
Examples:
Generic Class for Terrier is derived
 Terrier can be defined as a Dog from Dog
subclass of Dog. With general
 SavingsAccount and attributes and Specific Class for
behaviors for all Terrier
CheckingAccount can be dogs. With new attributes
derived from the Account and behaviors
class (see following slides). specific to the
Terrier breed.
New Account Types - Cont’d
Suppose we define SavingsAccount and
CheckingAccount
as two new subclasses of the Account class.

class SavingsAccount
class Account { extends Account {
method acctNum() {…} method rate() {…}
method balance() {…} }
method deposit() {…}
method withdraw() {…}
} class CheckingAccount
extends Account {
method withdraw() {…}
}
New Account Types - Cont’d
Account SavingsAccount CheckingAccount

acctNum() acctNum() acctNum()


balance() balance() balance()
deposit() deposit() deposit()
withdraw() withdraw() withdraw()

rate() withdraw()

No new code has to be written for deposit() and other


methods, they are inherited from the superclass.
Messages
 Messages are information/requests that objects
send to other objects (or to themselves).
 Message components include:
 The name of the object to receive the message.
 The name of the method to perform.
 Any parameters needed for the method.

Manager Employee

Message
To: Employee
Method: getHired
Parameters: salary = $45,000, start_date = 10/21/99
Benefits of Messages
Message passing supports all possible interactions between
two objects.

 Message passing is the mechanism that is used to


invoke a method of the object.
 Objects do not need to be part of the same process or on
the same machine to interact with one another.
 Message passing is a run-time behavior, thus it is not
the same as a procedure call in other languages
(compile-time).
 The address of the method is determined dynamically at run-
time, as the true type of the object may not be known to the
compiler.
Polymorphism
Polymorphism is one of the essential features of an object-
oriented language; this is the mechanism of decoupling
the
behavior from the message.

 The same message sent to different types of objects


results in:
 execution of behavior that is specific to the object and,
 possibly different behavior than that of other objects
receiving the same message.
 Example: the message draw() sent to an object of type
Square and an object of type Circle will result in
different behaviors for each object.
Polymorphism – Cont’d
There are many forms of Polymorphism in object-oriented
languages, such as:

 True Polymorphism: Same method signature defined for


different classes with different behaviors (i.e. draw() for the
Classes Circle and Square)
 Parametric Polymorphism: This is the use of the same method
name within a class, but with a different signature (different
parameters).
 Overloading: This usually refers to operators (such as +,-,/,*,
etc) when they can be applied to several types such as int,
floats, strings, etc.
 Overriding: This refers to the feature of subclasses that
replace the behavior of a parent class with new or modified
behavior.
OO Concepts Summary
 Object-oriented programming is a way of conceptualizing a
program as groups of objects that interact with one another.
 A class is a general template used to create objects.
 The combination of collecting all the attributes of an object
into a single class definition, combined with the ability to
hide some definitions within the class, is known as
encapsulation.
 Classes can also define class variables and class methods
which are attributes and methods associated with the class
as a whole.
 Inheritance allows classes to “inherit” attributes and
methods from their base (parent) class. This provides a
clean mechanism for code re-use and extension.
Software Development Lifecycles
Software lifecycles describe the evolution of a
software
project from conception of the need for a software
system to
the retirement or replacement of the resulting
system.

Two key dimensions of a specific lifecycle are:


 The collection of activities to be done
 The flow or sequencing of those activities
Common Lifecycle Activities
 Project Charter (definition): General description or
problem statement, top level business scenarios.
 Analysis: Systems level, low detail, problem space
oriented. Results in Requirements/Specification
document.
 Design: Implementation level, high detail, solution space
oriented. Results in Software design/model document.
 Implementation: Coding, testing, UI, data design,
documentation. Results in deliverable product.
 Delivery: Configuration, training, maintenance, product
evolution planning.
 Product end of life planning: Replacement
Common Lifecycle Flows
Lifecycle flows (there are just about as many of these as
there
are software projects…) can generally be characterized as
one
of the following types:

 Sequential
 Waterfall method, Structured Analysis & Design
 Iterative, Spiral and Recursive Methods
 There are a huge variety of these
 “Agile” or “LightWeight” Software Methods fit into this class
 Parallel Effort
 Unmanaged, Chaotic
Analysis and Design Space
Analysis and Design Space - Cont’d
Outline
 Key Object-Oriented Systems Concepts
 Basic Software Lifecycle Concepts
 Introduction to OOA/OOD
 Scenarios and Use Cases
 CRC’s
 Sequence Diagrams
 Class Diagrams
 UML Models
Use Cases
Use cases describe the basic business logic of an application.
 Use cases typically written in structured English or Diagrams
 Represent potential business situations of an application
 Describes a way in which a real-world actor – a person,
organization, or external system – interacts with the
application.

For example, the following would be considered use cases for a


university information system:
 Enroll students in courses
 Output seminar enrolment lists
 Remove students from courses
 Produce student transcripts.
Use Cases Diagrams
Class Responsibility Collaborator Cards

 A CRC model is a collection of CRC cards that


represent whole or part of an application or problem
domain
 The most common use for CRC models is to gather
and define the user requirements for an object-oriented
application
 The next slide presents an example CRC model for a
shipping/inventory control system, showing the CRC
cards as they would be placed
 Note the placement of the cards: Cards that collaborate
with one another are close to each other, cards that
don’t collaborate are not near each other
CRC
Class Example
Information
Methods and
Attributes
Collaborators
CRC Card Layout
Class Name:
Parent Class: Subclasses:

Attributes: Collaborators (Sends Messages to):

Responsibilities:
Sequence Diagrams

Traditional sequence diagrams show:


 The objects involved in the use case
 The messages that they send each other
 Return values associated with the messages

Sequence diagrams are a great way to review your work as


they force you to walk through the logic to fulfill a use-case
scenario and match the responsibilities and collaborators in
CRC cards.
Sequence Diagrams
Class Diagrams
Class diagrams (object models) are the
mainstay
of OO modeling
 They are used to show both what the system will be
able to do (analysis) and how it will be built (design)
 Class diagrams show the classes of the system and
their interrelationships
 Inheritance
 Aggregation
 Associations
Class Diagram
UML Models
Review: Introduction to Object Orientation
 What are the four basic principles of object orientation? Provide
a brief description of each.
 What is an Object and what is a Class? What is the difference
between them?
 What is an Attribute?
 What is an Operation?
 What is inheritance?
 What is polymorphism?
 Describe the strengths of object orientation.
 OOAD process

 Groupt work Research and summarrize on methods/tools of


analysis and design of OO programs 10 mins presentation next
week

84
Review: Introduction to Object
Orientation
 State 2 differences between functional
programming and OOP.
 What are the four basic principles of object
orientation? Provide a brief description of
each.
 What is an Object and what is a Class?
What is the difference between them?
 What is an Attribute?
 What is an Operation?
 Describe the strengths of object orientation.

85

You might also like