Friday, September 18, 2009

OOP

What is Object Oriented Programming ?
It is a problem solving technique to develop software systems. It is a technique to think real world in terms of objects. Object maps the software model to real world concept. These objects have responsibilities and provide services to application or other objects.


What’s a Class ?
A class describes all the attributes of objects, as well as the methods that implement the behavior of member objects. It’s a comprehensive data type which represents a blue print of objects. It’s a template of object.


What’s an Object ?
It is a basic unit of a system. An object is an entity that has attributes, behavior, and identity. Objects are members of a class. Attributes and behavior of an object are defined by the class definition.


What is the relation between Classes and Objects ?
They look very much same but are not same. Class is a definition, while object is a instance of the class created. Class is a blue print while objects are actual objects existing in real world. Example we have class CAR which has attributes and methods like Speed, Brakes, Type of Car etc. Class CAR is just a prototype, now we can create real time objects which can be used to provide functionality. Example we can create a Maruti car object with 100 km speed and urgent brakes


What are different properties provided by Object-oriented systems ?

Abstraction It allows complex real world to be represented in simplified manner. Example color is abstracted to RGB. By just making the combination of these three colors we can achieve any color in world.It’s a model of real world or concept.
Encapsulation It is a process of hiding all the internal details of an object from the outside world.
Communication using messages When application wants to achieve certain task it can only be done using combination of objects. A single object can not do all the task. Example if we want to make order processing form.We will use Customer object, Order object, Product object and Payment object to achieve this functionality. In short these objects should communicate with each other. This is achieved when objects send messages to each other.
Object lifetime All objects have life time.Objects are created ,and initialized, necessary functionalities are done and later the object is destroyed. Every object have there own state and identity which differ from instance to instance.
Class hierarchies (Inheritance and aggregation) Twist :- What is difference between Association, Aggregation and Inheritance relationships? In object oriented world objects have relation and hierarchies in between them. There are basically three kind of relationship in Object Oriented world :-
Association This is the simplest relationship between objects. Example every customer has sales. So Customer object and sales object have an association relation between them. Aggregation This is also called as composition model. Example in order to make a "Accounts" class it has use other objects example "Voucher", "Journal" and "Cash" objects. So accounts class is aggregation of these three objects.
Inheritance Hierarchy is used to define more specialized classes based on a preexisting generalized class. Example we have VEHICLE class and we can inherit this class make more specialized class like CAR, which will add new attributes and use some existing qualities of the parent class. Its shows more of a parent-child relationship. This kind of hierarchy is called inheritance.
Polymorphism When inheritance is used to extend a generalized class to a more specialized class, it includes behavior of the top class(Generalized class). The inheriting class often implement a behavior that can be somewhat different than the generalized class, but the name of the behavior can be same. It is important that a given instance of an object use the correct behavior, and the property of polymorphism allows this to happen automatically.


What are abstract classes ?
Following are features of a abstract class :-
√ You can not create a object of abstract class175
√ Abstract class is designed to act as a base class (to be inherited by other classes). Abstract class is a design concept in program development and provides a base upon which other classes are built.
√ Abstract classes are similar to interfaces. After declaring an abstract class, it cannot be instantiated on its own, it must be inherited.
√ In VB.NET abstract classes are created using "MustInherit" keyword.In C# we have "Abstract" keyword.
√ Abstract classes can have implementation or pure abstract methods which should be implemented in the child class.


what are Interfaces?
Interfaces are components used to declare a set of methods. However, the data members of an interface are not implemented. C# allows you to group related data by using structs. However, to group related methods, properties, indexers, and events, you use interfaces. Interfaces contain only method declarations; therefore, you cannot create an instance of an interface. However, you need to declare an interface by using the interface keyword. interface
{
- - - - - - - - - - - - - - - - -
}
Interface declarations do not include a modifier because all interfaces are public by default. Interfaces cannot be abstract, sealed, virtual, or static. However,you can use the new modifier with nested interfaces. The new modifier is used when you need to hide an inherited namespace by the same name as the base namespace. In situations where you want the members of a class to exhibit certain features, you can group these members in an interface. The class can then implement the
interface. The classes in C# can also implement multiple interfaces. Implementing an interface implies that a class is derived from the interface and the class implements all the members of that interface. Consider the following example of the Employee class that implements two interfaces:

interface Employee
{
- - - - - - - - - - - -
}
interface Salary
{
- - - - - - - - - - - -
}
class Employee: Employee, Salary
{
- - - - - - - - - - - -
}
Therefore, the class Employee implements all the methods declared in the interfaces
Employee and Salary.
Similar to classes, interfaces can also be inherited. These interfaces are called explicit base interfaces. C# does not support multiple inheritance of classes. However, you can achieve multiple inheritance in C# by using interfaces. In the previous example, if the interface Salary was inherited from Employee, the interface declaration statement would be:
interface Salary: Employee
{
- - - - - - - - - - - -
}
In C#, if a class implements an interface, the class also implicitly implements its base interfaces.
TIP By now, you have learned about the basic components of C# that you can use to write programs in C#. The next sections look at writing a simple program in C# and then compiling and executing it.

No comments:

Post a Comment