CSC/ECE 517 Fall 2009/wiki2 15 sm

From Expertiza_Wiki
Jump to navigation Jump to search

Abstraction and the Object Model

Introduction

Abstraction is a process in which some characteristics of an entity are removed to reduce it to a set of essential characteristics that can effectively define that entity.It is basically done to reduce complexity.For example : the abstraction of a plastic container to a container will retain only the general information on the behavior and attributes of the container.The principle of abstraction is an essential element of Object-Oriented programming.One of the most powerful ways of managing abstraction is by using hierarchical classifications.This helps in layering the semantics of complex systems thus breaking them into chunks of manageable pieces.This method of hierarchical abstractions can also be applied to computer programs.The data from a process-oriented program can be transformed into its component objects using the principle of abstraction.In programming languages,abstraction is a mechanism that emphasizes the general properties of some segment of code and hides details.It involves separating a program into parts that contains certain details and parts where these details are hidden.In Object-Oriented terminology,data is considered as attributes and the functions are referred to as methods.The main advantage of Object-Oriented programming is that the data as well as the operations that manipulate the data which is called code,are both encapsulated inside the object.For example : a Java Applet is an object.The browser executing that particular objet has no idea about its functionalities.When the object is loaded ,the code inside it is executed by the browser using the data contained within that particular object.Objects are the building blocks of Object Oriented programming.The state of an object is the data contained inside that object also referred to as attributes.These attributes help in differentiating between the various objects.In object-oriented programming,the methods define the behaviour of an object.The concept of getters and setters sometimes referred to as accessor methods provide controlled access to an object's data. A class is a kind of template from which objects are made.For example: if we are creating two employess,it is said that we have created to instances of the employee class with each instance or object having its own attributes and methods.An object can be instantiated or built only by using a class. For Example: To instantiate an object in java ,

                  myClass myObject;

Here myClass is a class and myObject is an object.

Overview

There are two common terms associated with the term abstraction:

  • Client - that part of the program that uses the program component.
  • Implementation - That part of the program thet defines the program component.

The interaction between these two entities is usually restricted to a specific interface.



Types of Abstraction

There are two kinds of abstraction :

  • Procedural Abstraction
  • Data Abstraction



Implementation of Abstraction in Object-Oriented Languages

Data Abstraction appeared in the class construct of Simula 67.The classs in Simula are created dynamically.It provided encapsulation of the class construct.The variables declared in a Simula67 class are not hidden from the clients that are creators of the objects of that class.Ada does provide encapsulation that can be used to simulate abstract data types.These encapsulation constructs are known as packages.Modula-2 uses modules instead of packages used in Ada to provide support for abstract data types except that the types whose representations are hidden inside must be pointers.

Uses

  • Flexibility - It provides flexibility since the programmer can now hide the details or data that are not required for presentation.
  • More security - It helps in hiding the implementation details and giving access only to the data.
  • Modularity - It helps a user to divide a large program into chunks of modules.This helps in making the debugging as well as testing a lot more easier.
  • Easy replacement - It is easier to replace code without recompiling.



Links