OOP: the rest of the story

  • Authors:
  • Chuck Allison;Nathan Liddle

  • Affiliations:
  • Utah Valley University;Utah Valley University

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

The object-oriented paradigm has influenced software development for decades now and has found its place in the mainstream of CS curricula. Its facility for improving program organization is well known and today's programmers are expected to readily employ its features when they apply. Few programmers, and even fewer CS curricula, however, are cognizant of some of OOP's more powerful aspects. Polymorphism, for example, does not only apply to one class hierarchy, hence multimethods are part of the OOP repertoire. Software designers should also understand how method pre-and-post conditions interact with inheritance, since class interfaces constitute a contract with client programs. Finally, it is important to understand that the features of object-oriented programming do not explicitly require statically defined classes. In this paper we explore multimethods, contract programming, and implementing objects without an explicit class type, with examples in popular, modern programming languages.