Object Oriented Programming (OOP)

'The Language of God'


Tahseen Zakaria;
Premier University

Next Page ->

This report has been prepared as a partial fulfilment of the course “Object Oriented Programming” instructed by Md. Abdullah Al Mahmud in the “Premier University”, Chittagong, dated Tuesday, 25 February 2003. In this report I have tried to introduce the reader to the concept of Object Oriented Programming (OOP). Nevertheless, thanks to Md. Abdullah Al Mahmud for giving me the chance and opportunity. However, I would like any new idea and concept about the writing or the topic by the readers. I had only one goal, and it was to make the reader understand of the huge and concrete concept of object oriented programming (or object orientation). With your support, I dare to utter the word ‘successful’ if you even for a fraction understand what the world 'OOP' and the ‘Language of God’ is.Thank you.

  1. Before you start

  2. Why OOP?

  3. What is structured programming?

  4. What is Object Oriented Programming (OOP)

  5. Basic Terms in Object Oriented Programming (Objects and Classes)

  6. Basic Terms in Object Oriented Programming (Inheritance)

  7. Basic Terms in Object Oriented Programming (Polymorphism)

  8. Even More OOP Concepts (Data abstraction, Encapsulation, Messages/ Message passing, Overloading, Dynamic Binding)

  9. Advantages and Drawbacks of OOP

  10. Object-Oriented Languages (C++, Smalltalk, VisualWorks, Java etc.)

  11. Summary and Conclusion

Before you start

Probably the most important thing I would like you to take away from this report is the idea that programming in an object oriented concept or language is more than just learning new functions, syntax, etc. Since OOP is more than learning a new language; it requires a new way of thinking. We must no longer think only in terms of data structures - we must think also in terms of objects.

To get a quick idea about OOP, a chart is been subscribed. If you don’t have any idea about programming, nothing matters. There are still some topics which can help you to understand the theme and things of OOP. This report has been prepared assuming the reader has at least completed any programming language or has some idea about C, Pascal or COBOL. However, some parts or topic don’t even require basic programming idea.  The topic labelled ‘Why OOP?’ answers the necessity of choosing object orientation method though you may not be familiar with the technical terms. Still, an in-depth discussion with technical words and examples are illustrated in the topic ‘Advantages of OOP’. The ‘drawbacks’ is written in both technical and non-technical terms. If you have previous programming experience with any conventional programming language, I would recommend going through the entire report systematically.

Why OOP?

 What makes object-orientation such a hot topic? To be honest, not everything that is sold under the term of object-orientation is really new. For example, there are programs written in procedural languages like Pascal or C which use object-oriented concepts. But there exist a few important features which these languages won't handle or won't handle very well, respectively. However, some people will say that object-orientation is ‘modern’. Yes, every approach and concepts of this object orientation will remind you yet how modern it is.

 The other reasons why the object orientation is such a hot topic can be vividly understood from its exclusive facilities. These facilities have been depicted in the other portion of this report ‘Advantages of OOP’ (see page). Actually, to understand the facilities of OOP concept, you need to know about the object orientation itself such as objects, data bindings, inheritance, polymorphism etc. However to understand the necessity here, I represent some of these, followed as below:

 1) Object-oriented systems can be easily upgraded from small to large scale.

 2) It is easy to partition the work in a project based on objects.

 3) Object-oriented programming offers a new and powerful model for writing computer software.

 4) It reduces software maintenance and developing costs.

 5) Changes in user requirements or later developments have always been a major problem. OOP can be the ultimate solution in this case.

 6) Object-orientation or object oriented programming (OOP) should help one in developing high quality software easily. Examples of these software are voter registration software, railway booking system, military defence software etc.

 Many software products are either not finished, not used or are delivered with major errors. For an example, let us consider the fate of US defence software projects undertaken in the 1970’s. Around 50% of the software products were never delivered while one-third of these were delivered but never used. It is interesting to note that only 2% were used as delivered, without being subjected to any changes. This illustrates that the software industry has a remarkably bad record in delivering products. OOP can be the solution to manage time schedules and can improve the quality of software.

 Programming with objects is quite like working with real-world objects. Object oriented programming brings this same level of abstraction to programming and helps remove some of the impediments to building larger systems.

 Some famous quotes about OOP may help you to realise OOP’s payback more clearly. Such as –

 "No single language can support every style, but a variety of styles can be supported within the framework of a single language. Where this can be done, significant benefits arise from sharing a common type system, a common toolset, and so forth. These technical advantages translate into important practical benefits such as enabling groups with moderately differing needs to share a language rather than having to apply a number of specialized languages." (Bjarne Stroustrup)

"Object-orientation is a new technology based on objects and classes. It presently represents the best methodological framework for software engineering and its pragmatics provides the foundation for a systematic engineering discipline. By providing first class support for the objects and classes of objects of an application domain, the object-oriented paradigm precepts better modeling and implementation of systems. Objects provide a canonical focus throughout analysis, design, and implementation by emphasizing the state, behavior, and interaction of objects in its models, providing the desirable property of seamlessness between activities." (Robert John Hathaway)

"Object-oriented languages and systems are a developing technology. There can be no agreement on the set of features and mechanisms that belong in an object-oriented language since the paradigm is far too general to be tied down. We can expect to see new ideas in object-oriented systems for many years to come." (Oscar Nierstrasz)

"Component-oriented programming has been described as the natural extension of object-oriented programming to the realm of independently extensible systems. Component-oriented programming aims at producing software components for a component market and for late composition. Composers are third parties, possibly the end user, who are not able or willing to change components. This requires standards to allow independently created components to interoperate, and specifications that put the composer into the position to decide what can be composed under which conditions." (Clemens Szyperski / Wolfgang Weck)

Though there are some different opinions that OOP concept is not always successful in some particular cases, but it is undoubtedly useful for most of the cases.

Page-1

Go to Next Page ->