Object Oriented Programming
(CS1143)
Week 2
Department of Computer Science
Capital University of Science and Technology (CUST)
Outline
Introduction to Classes and Objects
Data Members
Member Functions
Constant Member Functions
2
What is OOP?
Object-oriented programming (OOP) is a computer
programming model that organizes software design
around data, or objects.
3
Types and Instances
A type is a concept from which an instance is created.
In other words, a type is an abstraction; an instance of that
type is a concrete entity.
The word circle is a type. We can draw circles with different radii as
instances of that type.
Student is a type. All of you are its instances
The relationship between a type and its instances is a one-
to-many relation. We can have many instances from one
single type.
4
Attributes and Behaviors
Any instance we encounter in this world has a set of
attributes and a set of behaviors.
5
Attributes
An attribute is a characteristic of an instance that
we are interested in.
For example, if the instance is a student in a
university, we may be interested only in the
student’s name, year, courses taken, and grades.
If the instance is a circle, we may be interested only
in its radius, perimeter, and area.
6
Behaviors
A behavior is an operation that we assume an
instance can perform on itself.
For example, if an instance is a student, we assume
that he can give his name, courses taken. etc.,
If an instance is a circle, we assume that it can give
its radius, its perimeter, and its area.
7
Classes and Objects
In C++, a user defined type can be created using a construct
named class.
An instance of a class is referred to as an object.
Attributes and behaviors of an object are represented as
data members and member functions
8
9
Data Members
A data member of an object is a variable whose
value represents an attribute.
For example, the radius of a circle object can be
represented by the value of a variable of type double.
Some attributes of an instance are not independent;
they may depend on values of other attributes.
For example, the perimeter and the area of a circle may
be two attributes, but we do not represent them as data
members because both depend on the value of the
radius.
10
Member Functions
A member function in object-oriented programming is a
function that simulates one of the behaviors of an object.
For example, we can write a function that allows a circle to give its
radius, its area, and its perimeter.
We can also write a function that a circle can use to set its radius.
11
Object Oriented Programming
To write object-oriented programs, we need to create a class, as a
type, and then instantiate objects as instances of that type.
We need three sections:
the class definition,
the member function definition,
the application (which uses the objects created from the class).
In the class definition section, we declare the data members and
member functions.
In the member function definition section, we define all member
functions.
In the application section, we instantiate objects and apply the
member function to those objects
12
13
Class Definition
14
Class Definition
A class definition is made of three parts:
a header
a body
a semicolon.
A class header is made of the reserved word class followed by the
name given by the designer.
We follow a convention that recommends that class names start with an
uppercase letter to distinguish them from library classes, which start with
lowercase letters.
The class body is a block (starting with an opening brace and ending
with a closing brace) that holds the declaration of data members and
member functions in the block.
The third element of a class declaration is a semicolon that
terminates the definition.
15
A Circle class
16
Declaring Data Members
The data members of a class simulate the attributes of the objects
that are instantiated from the class.
Some of the attributes are dependent on the others and can be
calculated given the other attributes. In such a case, always choose
the most basic attribute
For example, in our circle class, we have three attributes: radius,
area, and perimeter. We have chosen the radius to be a data
member.
17
Declaring Member Functions
The second part of the class definition declares the
member functions of the class; that is, it declares all
functions that are used to simulate the behavior of
the class.
Some functions have the const qualifier at the end
and some do not.
Constant member functions are
those functions which are denied permission to
change the values of the data members of their
class.
18
19
Member Functions
Definition
20
Member Functions Definition
The declaration of a member function gives its prototype;
each member function also needs a definition.
The definition of each member function is similar to the
definition that we have used previously but there are two
differences.
The first is the qualifier (const) that is applied to some member
function.
The second is the name of the function that must be qualified with
the name of the class.
In C++, we need to mention the class name first followed by
a class scope (::) symbol while writing the function
definition.
21
22
23
24
Application
25
Application
We need an application section to instantiate objects of the
class and apply the member functions on those objects.
We can instantiate an object of the class in the following way
26
Applying operations on objects
We can apply operations on objects in the following way.
The first line sets the radius of circle1. The second line gets the value
of the circle’s radius.
The next two lines calculate and print the area and perimeter of the
object named circle1
27
Member Selection
We are using a dot between the object name and the member
function that is supposed to operate on the object.
This is called the member select operator
In other words, we can apply the same function on different objects
using this operator
28
Complete Program
29
30
Separating Class Definition
from Implementation
31
Benefits
It hides implementation from definition. You can feel free to
change the implementation. The client program that uses
the class does not need to change as long as the definition is
not changed.
As a software vendor, you can just provide the customer
with the header file and class object code without revealing
the source code for implementing the class. This protects
the software vendor’s intellectual property.
32
How to do it?
Class Definition must be in a file “ClassName.h”
Member Function Definition must be in a file “ClassName.cpp”
Include the .h file in this .cpp file using
#include "Circle.h"
Application can be in a third file.
Include the .h file in this .cpp file using
#include "Circle.h"
33
Making project in Dev-C++
1. Make a new folder on Desktop. Rename it to “MyProject”.
2. Open Dec-C++.
3. Make new project.
4. Select Empty project
5. Save it to the folder created in step 1.
6. Add new files to the project.
34
Circle.h
35
Circle.cpp
36
main.cpp
37
That is all for Week 2
38