Introduction to Object-Oriented Concepts and Analysis
Object-oriented programs are made up of classes. Classes correspond to real-world entities such as bank accounts or customers.
An object is one instance of a class, much as 3 is an instance of a number and hello is an instance of an English word.
There are rules about how to add and subtract numbers, and they apply to all numbers.
There are rules about how to write and say words, and they apply to all words.
Similarly, when you define a class, you are setting the rules for all the objects of that class.
This module defines the classes that were name in the previous module.
You will learn about:
Responsibilities: what a class gets done
Collaborators: classes that work together to accomplish a task
Encapsulation: how to keep changes in one class from affecting others
The uses and benefits of traditional, structured programming
The uses and benefits of object-oriented programming (OOP)
Object-oriented systems development methods differ from traditional development techniques in that the traditional techniques view software as a collection of
programs (or functions) and isolated data.
A program can be defined as
Algorithms + Data Structures = Programs:
A software system is a set of mechanisms for performing certain action on certain data.
The main distinction between traditional system development methodologies and newer object-oriented methodologies depends on their primary focus
- The traditional approach focuses on the functions of the system
- Object-oriented systems development centers on the object, which combines data and functionality.
Object-oriented systems development methodology
Object-oriented development offers a different model from the traditional software development approach, which is based on functions and procedures.
In simplified terms, object-oriented systems development is a way to develop software by building self-contained modules or objects that can be easily replaced, modified,
and reused. In an object-oriented environment,
- Software is a collection of discrete objects that encapsulate their data as well as the functionality to model real-world "objects."
- An object orientation yields important benefits to the practice of software construction
- Each object has attributes (data) and methods (functions).
- Objects are grouped into classes; in object-oriented terms, we discover and describe the classes involved in the problem domain.
- Everything is an object and each object is responsible for itself.