OOPortal OOPortal


OO Programming  «Prev  Next»
Lesson 1

Why object-oriented programming?

Object orientation has become the development paradigm of choice for programmers in the 1990s, 2000s, and beyond.
In this module, you will explore how object-oriented programming (OOP) differs from traditional, procedural, or structured programming and how you can exploit those differences to produce faster, more maintainable code.
In this module, you will learn:
  1. How traditional programs are designed
  2. How object-oriented programs are designed
  3. How to choose the initial classes in your system
  4. Some of the qualities of a "good class" for an object-oriented application

Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. It uses several techniques from previously established paradigms, including encapsulation, inheritance, and polymorphism.
Even though it originated in the 1960s, OOP was not commonly used in mainstream software application development until the 1990s. Today, many popular programming languages support OOP. The origins of object-oriented programming reach all the way back to the 1960s, when the field of software engineering had begun to discuss the idea of a software crisis. As hardware and software became increasingly complex, how could software quality be maintained?
Object-oriented programming addresses this problem by strongly emphasizing modularity in software.

What is object oriented programming

Object oriented programming is a programming paradigm where concepts in the program are represented by objects. Each object is an instance of a class, which can be seen as a blueprint or template of the characteristics of the object . Contrary to procedural programming, these characteristics include data, attributes or variables describing the object's state and behavior. The methods or procedures describe the actions an object can perform.

Functional Programming

Programming in a functional language consists of building definitions and using the computer to evaluate expressions. The primary role of the programmer is to construct a function to solve a given problem. This function, which may involve a number of subsidiary functions, is expressed in notation that obeys normal mathematical principles. The primary role of the computer is to act as a calculator: its job is to evaluate expressions and print the results. In this respect, the computer acts much like an ordinary pocket calculator.
What distinguishes a functional calculator from a standard calculator is the programmer's ability to make definitions to increase its powers of calculation. Expressions which contain occurrences of the names of functions defined by the programmer are evaluated by using the given definitions as simplification (or 'reduction') rules for converting expressions to printable form. A characteristic feature of functional programming is that if an expression possesses a well-defined value, then the order in which a c.omputer may carry out the evaluation does not affect the outcome.
In other words, the meaning of an expression is its value and the task of the computer is simply to obtain it. It follows that expressions in a functional language can be constructed, manipulated and reasoned about, like any other kind of mathematical expression, using more or less familiar algebraic laws. The result, as we hope to justify, is a conceptual framework for programming which is at once very simple, very concise, very flexible and very powerful.