Saturday, February 4, 2012

OOPS Concept, Features and Description

Let us know the solution of following queries:
Ques: What is OOP(Object Oriented Programming)?
Ques: What is Encapsulation?
Ques: What is Abstraction?
Ques: What is Polymorphism
Ques: What is Inheritance?

"The object-oriented approach encourages the programmer to place data where it is not directly accessible by the rest of the program. Instead, the data is accessed by calling specially written functions, commonly called methods, which are either bundled in with the data or inherited from "class objects." These act as the intermediaries for retrieving or modifying the data they control. The programming construct that combines data with a set of methods for accessing and managing those data is called an object"        (Wikipedia)

"The Object oriented programming (OOP) is a programming model of objects, data fields and methods interacting together for the purpose of application development. It allow decomposition of a problem into a number of entities called Object and then builds data and function around these objects"                              (Code Imagine)
  • The data of the objects can be accessed only by the functions associated with that object.
  • The functions of one object can access the functions of other object.
"Features of OOPs"

                                    "Class"
Class is a blueprint of an object that contains variables for storing data and functions to performing operations on these data. Class will not occupy any memory space and hence it is only logical representation of data.

Syntax to create a class:
class Employee
{

}
                                                 "Object"
Objects are the basic run-time entities in an object oriented system. They may represent a person, a place or any item that the program has to handle. 


Class will not occupy any memory space. Hence to work with the data represented by the class you must create a variable for the class, which is called as an object.
When an object is created by using the keyword new, then memory will be allocated for the class in heap memory area, which is called as an instance and its starting address will be stored in the object in stack memory area.
When an object is created without the keyword new, then memory will not be allocated in heap I.e. instance will not be created and object in the stack contains the value null.
When an object contains null, then it is not possible to access the members of the class using that object.

Syntax to create an object of class Employee:

Employee objEmp = new Employee();
All the programming languages supporting object oriented Programming will be supporting these four main concepts:
  • Abstraction
  • Encapsulation
  • Inheritance
  • Polymorphism
                              "Abstraction"
                
Abstraction is "To represent the essential feature without representing the back ground details."

Abstraction lets you focus on what the object does instead of how it does it.
Abstraction provides you a generalized view of your classes or object by providing relevant information.
Abstraction is the process of hiding the working style of an object, and showing the information of an object in understandable manner.

Example of Abstraction:
Suppose you have an object Mobile Phone.

Suppose you have 3 mobile phones as following:-

Nokia 1400 (Features:- Calling, SMS)
Nokia 2700 (Features:- Calling, SMS, FM Radio, MP3, Camera)
Black Berry (Features:-Calling, SMS, FM Radio, MP3, Camera, Video Recording, Reading E-mails)

Abstract information (Necessary and Common Information) for the object "Mobile Phone" is make a call to any number and can send SMS."

so that, for mobile phone object you will have abstract class like following:-


                                                                Simple Example
    abstract class MobilePhone
    {
        public void Calling();
        public void SendSMS();
    }

    public class Nokia1400 : MobilePhone
    {

    }

    public class Nokia2700 : MobilePhone
    {
        public void FMRadio();
        public void MP3();
        public void Camera();
    }

    public class BlackBerry : MobilePhone
    {
        public void FMRadio();
        public void MP3();
        public void Camera();
        public void Recording();
        public void ReadAndSendEmails();
    }

Abstraction means putting all the variables and methods in a class which are necessary.
For example: Abstract class and abstract method.

Example from implementation point of view: 
           In an university form for college, you need to fill your details like name, address, date of birth, percentage etc. and for the other application form for the doctor you need to fill the details like name, address, date of birth, blood group, height and weight. Here the common thing netween these two forms are Age, name, address so you can create the class which consist of common thing that is called abstract class. 
That class is not complete and it can inherit by other class.

Real World Example of Abstraction:- 
Example-1: 
                     While you are driving a car you know how to stop and turn the car using break and staring even you don't know how the internal parts working properly i.e. functionality of engine. 
But how the Mobile Phone internally working?, how keypad buttons are connected with internal circuit? is called Encapsulation.
                
Example-2: 
                   Same in mobile you can dial a number using keypad buttons. Even you don't know how these are working internally. This is called Abstraction. You have the only information that is needed to dial a number but not its internal working of mobile.

"Encapsulation"

"Wrapping up data member and method together into a single unit (i.e. Class) is called Encapsulation"

  • Encapsulation is like enclosing in a capsule. That is enclosing the related operations and data related to an object into that object.
  • Encapsulation is like your bag in which you can keep your pen, book etc. It means this is the property of encapsulating members and functions. 
  • Encapsulation means hiding the internal details of an object, i.e. how an object does something.
  • Encapsulation prevents clients from seeing its inside view, where the behaviour of the abstraction is implemented.
  • Encapsulation is a technique used to protect the information in an object from the other object.
  • Hide the data for security such as making the variables as private, and expose the property to access the private data which would be public.
    class Bag
    {
        book;
        pen;
        ReadBook();
    }


                              Example of Encapsulation:

class Demo
{
   private int _mark;

   public int Mark
   {
     get { return _mark; }
     set { if (_mark > 0) _mark = value; else _mark = 0; }
   }
 }

Real world Example of Encapsulation:
Example-1:
                    Let's take example of Mobile Phone and Mobile Phone Manufacturer
Suppose you are a Mobile Phone Manufacturer and you designed and developed a Mobile Phone design(class), now by using machinery you are manufacturing a Mobile Phone(object) for selling, when you sell your Mobile Phone the user only learn how to use the Mobile Phone but not that how this Mobile Phone works.

This means that you are creating the class with function and by making object (capsule) of it you are making availability of the functionality of you class by that object and without the interference in the original class.

Example-2: 
TV operation 
It is encapsulated with cover and we can operate with remote and no need to open TV and change the channel.
Here everything is in private except remote so that anyone can access not to operate and change the things in TV.
"Inheritance"

When a class acquire the property of another class is known as inheritance i.e. a child acquire property of his parents. It is process of code re-usability.
                                               Example:
public class ParentClass
    {
        public ParentClass()
        {
            Console.WriteLine("Parent Constructor.");
        }

        public void print()
        {
            Console.WriteLine("I'm a Parent Class.");
        }
    }

    public class ChildClass : ParentClass
    {
        public ChildClass()
        {
            Console.WriteLine("Child Constructor.");
        }

        public static void Main()
        {
            ChildClass child = new ChildClass();

            child.print();
        }
    }
Output:
    Parent Constructor.
    Child Constructor.
    I'm a Parent Class.

"Polymorphism"


Polymorphism means one name many forms.
One function behaves different forms.
In other words, "Many forms of a single object is called Polymorphism."

Real World Example of Polymorphism:
Example-1: 
A Teacher behaves to student.
A Teacher behaves to his/her seniors.
Here teacher is an object but attitude is different in different situation.
Example-2: 
Person behaves SON in house at the same time that person behaves EMPLOYEE in office.
Example-3: 
Your mobile phone, one name but many forms
  • As phone
  • As camera
  • As mp3 player
  • As radio
 
Brief single line description:
  • Encapsulation is accomplished by using Class. - Keeping data and methods that accesses that data into a single unit.
  • Abstraction is accomplished by using Interface. - Just giving the abstract information about what it can do without specifying the back ground details.
  • Information/Data hiding is accomplished by using Modifiers - By keeping the instance variables private or protected.

0 comments:

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Code Imagine