C++ (ClassesAndObjects) ABM
C++ (ClassesAndObjects) ABM
C++ (ClassesAndObjects) ABM
OO Programming Concepts
Object-oriented programming (OOP) involves
programming using objects. An object represents
an entity in the real world that can be distinctly
identified. For example, a student, a desk, a circle,
a button, and even a loan can all be viewed as
objects. An object has a unique identity, state, and
behaviors. The state of an object consists of a set of
data fields (also known as properties) with their
current values. The behavior of an object is defined
by a set of functions.
Copyright 2013 by Pearson Education, Inc. All Rights Reserved.
Objects
Class Name: Circle
A class template
Data Fields:
radius is _______
Functions:
getArea
Circle Object 1
Circle Object 2
Circle Object 3
Data Fields:
radius is 10
Data Fields:
radius is 25
Data Fields:
radius is 125
Three objects of
the Circle class
Classes
Classes are constructs that define objects of the
same type. A class uses variables to define data
fields and functions to define behaviors.
Additionally, a class provides a special type of
functions, known as constructors, which are
invoked to construct objects from the class.
Classes
class Circle
{
public:
// The radius of this circle
double radius;
// Construct a circle object
Circle()
{
radius = 1;
}
Data field
Constructors
Function
Class name
+radius: double
Data fields
+Circle()
Constructors and
Functions
+Circle(newRadius: double)
+getArea(): double
circle1: Circle
radius = 1.0
circle2: Circle
radius = 25
circle3: Circle
UML notation
for objects
radius = 125
TestCircle
Run
channel: int
volumeLevel: int
on: bool
+TV()
+turnOn(): void
+turnOff(): void
+setVolume(newVolumeLeve: int): void Sets a new volume level for this TV.
+channelUp(): void
+channelDown(): void
+volumeUp(): void
+volumeDown(): void
TV
Run
8
Constructors
The constructor has exactly the same name as the defining class. Like
regular functions, constructors can be overloaded (i.e., multiple
constructors with the same name but different signatures), making it
easy to construct objects with different initial data values.
A class normally provides a constructor without arguments (e.g.,
Circle()). Such constructor is called a no-arg or no-argument
constructor.
A class may be declared without constructors. In this case, a no-arg
constructor with an empty body is implicitly declared in the class.
This constructor, called a default constructor, is provided
automatically only if no constructors are explicitly declared in the
class.
Copyright 2013 by Pearson Education, Inc. All Rights Reserved.
Constructors, cont.
A constructor with no parameters is referred to as a
no-arg constructor.
10
Object Names
In C++, you can assign a name when creating an
object. A constructor is invoked when an object is
created. The syntax to create an object using the
no-arg constructor is
ClassName objectName;
For example,
Circle circle1;
Copyright 2013 by Pearson Education, Inc. All Rights Reserved.
11
12
Access Operator
After an object is created, its data can be accessed
and its functions invoked using the dot operator (.),
also known as the object member access operator:
objectName.dataField references a data field in the
object.
objectName.function(arguments) invokes a function
on the object.
Copyright 2013 by Pearson Education, Inc. All Rights Reserved.
13
14
Class is a Type
You can use primitive data types to
declare variables. You can also use class
names to declare object names. In this
sense, a class is also a data type.
15