[go: up one dir, main page]

0% found this document useful (0 votes)
18 views18 pages

Chapter 03

The document discusses advanced object-oriented concepts including constructors, overloading methods, the superclass, scope, and operator overloading. Constructors initialize objects and are called when a new object is created. Methods can be overloaded by changing their signature. The superclass constructor is called from a subclass constructor. Scope determines accessibility of attributes and methods.

Uploaded by

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

Chapter 03

The document discusses advanced object-oriented concepts including constructors, overloading methods, the superclass, scope, and operator overloading. Constructors initialize objects and are called when a new object is created. Methods can be overloaded by changing their signature. The superclass constructor is called from a subclass constructor. Scope determines accessibility of attributes and methods.

Uploaded by

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

The Object-Oriented

Thought Process
Chapter 03

Advanced Object-Oriented Concepts


Constructors

Constructors are used to initialize objects.


– In Java and C#, constructors are methods
that share the same name as the class.
– Visual Basic .NET uses the designation
New.
– Objective-C uses the init keyword.
When a Constructor is Called

When a new object is created, one of the first


things that happens is that the constructor is
called.
– The constructor creates a new instance of the
class,
• thus allocating the required memory.
– Then the constructor itself is called, passing the
arguments in the parameter list.
• Providing the opportunity to attend to the
appropriate initialization.
What’s Inside a Constructor

Perhaps the most important function of a


constructor is to initialize the memory
allocated.
– In short, code included inside a constructor
should set the newly created object to its
initial, stable, safe state.
The Default Constructor

If the class provides no explicit constructor, a


default constructor will be provided.
– It is important to understand that at least
one constructor always exists, regardless
of whether you write a constructor yourself.
– If you do not provide a constructor, the
system will provide a default constructor for
you.
Using Multiple Constructors

In many cases, an object can be constructed in


more than one way.
– To accommodate this situation, you need to
provide more than one constructor.
– This is called overloading a method
(overloading pertains to all methods, not
just constructors).
• Most OO languages provide functionality
for overloading a method.
Overloading Methods

Overloading allows a programmer to use the


same method name over and over.
– As long as the signature of the method is
different each time.
– The signature consists of the method name
and a parameter list
The Superclass

When using inheritance, you must know how the


parent class is constructed.
– Inside the constructor, the constructor of
the class’s superclass is called.
– Each class attribute of the object is
initialized.
– The rest of the code in the constructor
executes.
Designing Constructors

It is good practice to initialize all the attributes.


– In some languages, the compiler provides
some sort of initialization.
– As always, don’t count on the compiler to
initialize attributes!
– Constructors are used to ensure that the
application is in a stable (or safe) state.
Error Handling

Assuming that your code has the capability to


detect and trap an error condition, you can
handle the error in several ways:
– Ignore the problem—not a good idea!
– Check for potential problems and abort the program when
you find a problem.
– Check for potential problems, catch the mistake, and attempt
to fix the problem.
– Throw an exception. (Often this is the preferred way to
handle the situation.)
The Concept of Scope

§ Multiple objects can be instantiated from a


single class.
– Each of these objects has a unique identity
and state.
– Each object is constructed separately and
is allocated its own separate memory.
Types of Scope

§ Methods represent the behaviors of an object;


the state of the object is represented by
attributes.
– Local attributes
– Object attributes
– Class attributes
Local Attributes

Local attributes are owned by a specific method


– Local variables are accessible only inside a
specific method.
– In Java, C#, C++ and Objective-C, scope is
delineated by curly braces ({ }).
public method() {
int count;
}
Object Attributes

In many design situations, an attribute must be


shared by several methods within the same
object.
public class Number {
int count; // available to both method1 and method2
public method1() {
count = 1;
}
public method2() {
count = 2;
}
}
Class Attributes

It is possible for two or more objects to share


attributes. In Java, C#, C++ and Objective-C,
you do this by making the attribute static:

public class Number {


static int count;
public method1() {
}
}
Operator Overloading

Some OO languages allow you to overload an


operator.
– C++ is an example of one such language.
Operator overloading allows you to change
the meaning of an operator.
– More recent OO languages like Java, .NET,
and Objective-C do not allow operator
overloading.
Multiple Inheritance

Multiple inheritance allows a class to inherit from


more than one class.
– Multiple inheritance can significantly
increase the complexity of a system,
– Java, .NET, and Objective-C do not support
multiple inheritance (C++ does).
– In some ways interfaces compensates for
this.
Object Operations

Comparing primitive data types is quite


straightforward.
– Copying and comparing objects is not quite
as simple.
– The problem with complex data structures
and objects is that they might contain
references.
• Simply making a copy of the reference does not copy the data
.
structures or the object that it references

You might also like