This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Monday, August 5, 2013

OOPS Concepts

OOPS Concepts



Introduction to Object Oriented Programming Concepts (OOPS) in C#.net


OOPS Concepts
Class:
 It is a collection of objects.
Object:
It is a real time entity.
An object can be considered a "thing" that can perform a set of related activities. The set of activities that the object performs defines the object's behavior. For example, the hand can grip something or a Student (object) can give the name or address. In pure OOP terms an object is an instance of a class
The above template describe about object Student
Class is composed of three things name, attributes, and operations
  public class student
{
}
student objstudent=new student ();

According to the above sample we can say that Student object, namedobjstudent, has created out of the student class.
In real world you will often find many individual objects all of the same kind. As an example, there may be thousands of other bicycles in existence, all of the same make and model. Each bicycle has built from the same blueprint. In object-oriented terms, we say that the bicycle is an instance of the class of objects known as bicycles. In the software world, though you may not have realized it, you have already used classes. For example, the Textbox control, you always used, is made out of the Textbox class, which defines its appearance and capabilities. Each time you drag a Textbox control, you are actually creating a new instance of the Textbox class.

Encapsulation:
Encapsulation is a process of binding the data members and member functions into a single unit.
Example for encapsulation is class. A class can contain data structures and methods.
Consider the following class
public class Aperture
{
public Aperture ()
{
}
protected double height;
protected double width;
protected double thickness;
public double get volume()
{
Double volume=height * width * thickness;
if (volume<0)
return 0;
return volume;
}
}
In this example we encapsulate some data such as height, width, thickness and method Get Volume. Other methods or objects can interact with this object through methods that have public access modifier

Abstraction:
Abstraction is a process of hiding the implementation details and displaying the essential features.
Example1: A Laptop consists of many things such as processor, motherboard, RAM, keyboard, LCD screen, wireless antenna, web camera, usb ports, battery, speakers etc. To use it, you don't need to know how internally LCD screens, keyboard, web camera, battery, wireless antenna, speaker’s works.  You just need to know how to operate the laptop by switching it on. Think about if you would have to call to the engineer who knows all internal details of the laptop before operating it. This would have highly expensive as well as not easy to use everywhere by everyone.
So here the Laptop is an object that is designed to hide its complexity.
How to abstract: - By using Access Specifiers
.Net has five access Specifiers
Public -- Accessible outside the class through object reference.
Private -- Accessible inside the class only through member functions.
Protected -- Just like private but Accessible in derived classes also through member functions.
Internal -- Visible inside the assembly. Accessible through objects.
Protected Internal -- Visible inside the assembly through objects and in derived classes outside the assembly through member functions.
Let’s try to understand by a practical example:-
public class Class1
    {
        int  i;                                                                //No Access specifier means private
        public  int j;                                                 // Public
        protected int k;                                         //Protected data
        internal int m;                                        // Internal means visible inside assembly
        protected internal int n;                  //inside assembly as well as to derived classes outside assembly
        static int x;                                          // This is also private
        public static int y;                           //Static means shared across objects
        [DllImport("MyDll.dll")]
        public static extern int MyFoo();       //extern means declared in this assembly defined in some other assembly
        public void myFoo2()
        {
            //Within a class if you create an object of same class then you can access all data members through object reference even private data too
            Class1 obj = new Class1();
            obj.i =10; //Error can’t access private data through object.But here it is accessible.:)
            obj.j =10;
            obj.k=10;
            obj.m=10;
            obj.n=10;
       //     obj.s =10;  //Errror Static data can be accessed by class names only
            Class1.x = 10;
         //   obj.y = 10; //Errror Static data can be accessed by class names only
            Class1.y = 10;
        }
    }

Now lets try to copy the same code inside Main method and try to compile
[STAThread]
        static void Main()
        {
           //Access specifiers comes into picture only when you create object of class outside the class
            Class1 obj = new Class1();
       //     obj.i =10;             //Error can’t access private data through object.
            obj.j =10;
      //      obj.k=10;     //Error can’t access protected data through object.
            obj.m=10;
            obj.n=10;
       //     obj.s =10;  //Errror Static data can be accessed by class names only
            Class1.x = 10;  //Error can’t access private data outside class
         //   obj.y = 10; //Errror Static data can be accessed by class names only
            Class1.y = 10;
        }
What if Main is inside another assembly
[STAThread]
        static void Main()
        {
           //Access specifiers comes into picture only when you create object of class outside the class
            Class1 obj = new Class1();
       //     obj.i =10;             //Error can’t access private data through object.
            obj.j =10;
      //      obj.k=10;     //Error can’t access protected data through object.
     //     obj.m=10; // Error can’t access internal data outside assembly
    //      obj.n=10; // Error can’t access internal data outside assembly

       //     obj.s =10;  //Errror Static data can be accessed by class names only
            Class1.x = 10;  //Error can’t access private data outside class
         //   obj.y = 10; //Errror Static data can be accessed by class names only
            Class1.y = 10;
        }
In object-oriented software, complexity is managed by using abstraction.
Abstraction is a process that involves identifying the critical behavior of an object and eliminating irrelevant and complex details.
Inheritance:
Inheritance is a process of deriving the new class from already existing class
C# is a complete object oriented programming language. Inheritance is one of the primary concepts of object-oriented programming. It allows you to reuse existing code. Through effective use of inheritance, you can save lot of time in your programming and also reduce errors, which in turn will increase the quality of work and productivity. A simple example to understand inheritance in C#.

Using System;
Public class BaseClass
{
    Public BaseClass ()
    {
        Console.WriteLine ("Base Class Constructor executed");
    }
                                 
    Public void Write ()
    {
        Console.WriteLine ("Write method in Base Class executed");
    }
}
                                 
Public class ChildClassBaseClass
{
                                 
    Public ChildClass ()
    {
        Console.WriteLine("Child Class Constructor executed");
    }
   
    Public static void Main ()
    {
        ChildClass CC = new ChildClass ();
        CC.Write ();
    }
}
  • In the Main () method in ChildClass we create an instance of childclass. Then we call the write () method. If you observe the ChildClass does not have a write() method in it. This write () method has been inherited from the parent BaseClass.
  • The output of the above program is

    Output:
      Base Class Constructor executed
      Child Class Constructor executed
      Write method in Base Class executed

    this output proves that when we create an instance of a child class, the base class constructor will automatically be called before the child class constructor. So in general Base classes are automatically instantiated before derived classes.
  • In C# the syntax for specifying BaseClass and ChildClass relationship is shown below. The base class is specified by adding a colon, ":", after the derived class identifier and then specifying the base class name.
Syntax:  class ChildClassNameBaseClass
              {
                   //Body
              }
  • C# supports single class inheritance only. What this means is, your class can inherit from only one base class at a time. In the code snippet below, class C is trying to inherit from Class A and B at the same time. This is not allowed in C#. This will lead to a compile time error: Class 'C' cannot have multiple base classes: 'A' and 'B'.
public class A
{
}
public class B
{
}
public class C : A, B
{
}
  • In C# Multi-Level inheritance is possible. Code snippet below demonstrates mlti-level inheritance. Class B is derived from Class A. Class C is derived from Class B. So class C, will have access to all members present in both Class A and Class B. As a result of multi-level inheritance Class has access to A_Method(),B_Method() and C_Method().

    Note: Classes can inherit from multiple interfaces at the same time.Interview Question: How can you implement multiple inheritance in C#? Ans : Using Interfaces. We will talk about interfaces in our later article.
Using System;
Public class A
{
    Public void A_Method ()
    {
        Console.WriteLine ("Class A Method Called");
    }
}
Public class BA
{
    Public void B_Method ()
    {
        Console.WriteLine ("Class A Method Called");
    }
}
Public class CB
{
    Public void C_Method ()
    {
        Console.WriteLine ("Class A Method Called");
    }
                   
    Public static void Main ()
    {
        C C1 = new ();
        C1.A_Method ();
        C1.B_Method ();
        C1.C_Method ();
    }
}
  • When you derive a class from a base class, the derived class will inherit all members of the base class except constructors. In the code snippet below class B will inherit both M1 and M2 from Class A, but you cannot access M2 because of the private access modifier. Class members declared with a private access modifier can be accessed only with in the class. We will talk about access modifiers in our later article.

    Common Interview Question: Are private class members inherited to the derived class?
    Ans: Yes, the private members are also inherited in the derived class but we will not be able to access them. Trying to access a private base class member in the derived class will report a compile time error.
Using System;
Public class A
{
    Public void M1 ()
    {
    }
    Private void M2 ()
    {
    }
}
         
Public class BA
{
    Public static void Main ()
    {
        B B1 = new B ();
        B1.M1 ();
        //Error, Cannot access private member M2
        //B1.M2 ();
    }
}
Method Hiding and Inheritance We will look at an example of how to hide a method in C#. The Parent class has a write () method which is available to the child class. In the child class I have created a new write () method. So, now if I create an instance of child class and call the write () method, the child class write () method will be called. The child class is hiding the base class write () method. This is called method hiding.

If we want to call the parent class write () method, we would have to type cast the child object to Parent type and then call the write () method as shown in the code snippet below.
Using System;
Public class Parent
{
    Public void Write ()
    {
        Console.WriteLine ("Parent Class write method");
    }
}
 
Public class ChildParent
{
    Public new void Write ()
    {
        Console.WriteLine ("Child Class write method");
    }
   
    Public static void Main ()
    {
        Child C1 = new Child ();
        C1.Write ();
        //Type caste C1 to be of type Parent and call Write () method
        ((Parent) C1).Write ();
    }
}
Polymorphism:
When a message can be processed in different ways is called polymorphism. Polymorphism means many forms.
 
Polymorphism is one of the fundamental concepts of OOP.
 
Polymorphism provides following features: 
  • It allows you to invoke methods of derived class through base class reference during runtime.
  • It has the ability for classes to provide different implementations of methods that are called through the same name.
Polymorphism is of two types: 
  1. Compile time polymorphism/Overloading
  2. Runtime polymorphism/Overriding
Compile Time Polymorphism
 
Compile time polymorphism is method and operators overloading. It is also called early binding.
 
In method overloading method performs the different task at the different input parameters.
 
Runtime Time Polymorphism
 
Runtime time polymorphism is done using inheritance and virtual functions. Method overriding is called runtime polymorphism. It is also called late binding.
 
When overriding a method, you change the behavior of the method for the derived class.  Overloading a method simply involves having another method with the same prototype.
 
Caution: Don't confused method overloading with method overriding, they are different, unrelated concepts. But they sound similar.
 
Method overloading has nothing to do with inheritance or virtual methods.
 
Following are examples of methods having different overloads:
 
void area(int side);
void area(int l, int b);
void area(float radius);
 
Practical example of Method Overloading (Compile Time Polymorphism)
 
using System;
 
namespace method_overloading
{
    class Program
    {
        public class Print
        {
           
            public void display(string name)
            {
                Console.WriteLine ("Your name is : " + name);
            }
 
            public void display(int age, float marks)
            {
                Console.WriteLine ("Your age is : " + age);
                Console.WriteLine ("Your marks are :" + marks);
            }
        }
       
        static void Main(string[] args)
        {
 
            Print obj = new Print ();
            obj.display ("George");
            obj.display (34, 76.50f);
            Console.ReadLine ();
        }
    }
}
 
Note: In the code if you observe display method is called two times. Display method will work according to the number of parameters and type of parameters.

When and why to use method overloading
 
Use method overloading in situation where you want a class to be able to do something, but there is more than one possibility for what information is supplied to the method that carries out the task.
 
You should consider overloading a method when you for some reason need a couple of methods that take different parameters, but conceptually do the same thing.
 
Method overloading showing many forms.
 
using System;
 
namespace method_overloading_polymorphism
{
    Class Program
    {
        Public class Shape
        {
            Public void Area (float r)
            {
                float a = (float)3.14 * r;
                // here we have used function overload with 1 parameter.
                Console.WriteLine ("Area of a circle: {0}",a);
            }
 
            Public void Area(float l, float b)
            {
                float x = (float)l* b;
                // here we have used function overload with 2 parameters.
                Console.WriteLine ("Area of a rectangle: {0}",x);
 
            }
 
            public void Area(float a, float b, float c)
            {
                float s = (float)(a*b*c)/2;
                // here we have used function overload with 3 parameters.
                Console.WriteLine ("Area of a circle: {0}", s);
            }
        }
 
        Static void Main (string[] args)
        {
            Shape ob = new Shape ();
            ob.Area(2.0f);
            ob.Area(20.0f,30.0f);
            ob.Area(2.0f,3.0f,4.0f);
            Console.ReadLine ();
        }
    }
}
 
Things to keep in mind while method overloading
 
If you use overload for method, there are couple of restrictions that the compiler imposes.
 
The rule is that overloads must be different in their signature, which means the name and the number and type of parameters.
 
There is no limit to how many overload of a method you can have. You simply declare them in a class, just as if they were different methods that happened to have the same name.

Constructors and Destructors:
Classes have complicated internal structures, including data and functions, object initialization and cleanup for classes is much more complicated than it is for simple data structures. Constructors and destructors are special member functions of classes that are used to construct and destroy class objects. Construction may involve memory allocation and initialization for objects. Destruction may involve cleanup and deallocation of memory for objects.
  • Constructors and destructors do not have return types nor can they return values.
  • References and pointers cannot be used on constructors and destructors because their addresses cannot be taken.
  • Constructors cannot be declared with the keyword virtual.
  • Constructors and destructors cannot be declared static, const, or volatile.
  • Unions cannot contain class objects that have constructors or destructors.
Constructors and destructors obey the same access rules as member functions. For example, if you declare a constructor with protected access, only derived classes and friends can use it to create class objects.
The compiler automatically calls constructors when defining class objects and calls destructors when class objects go out of scope. A constructor does not allocate memory for the class object it’s this pointer refers to, but may allocate storage for more objects than its class object refers to. If memory allocation is required for objects, constructors can explicitly call thenew operator. During cleanup, a destructor may release objects allocated by the corresponding constructor. To release objects, use the deleteoperator.
Example of Constructor
class C
{
       private int x;    
       private int y;
       public C (int i, int j)
       {
                 x = i;
                 y = j;
       }
       public void display ()     
       {
               Console.WriteLine(x + "i+" + y);
       }
}
Example of Destructor
class D
{
        public D ()
        {
            // constructor
        }         
        ~D ()
        {
           // Destructor
        }
}

Outlook 2010: Mailbox Full



(Jump Straight to The Fix)

All of a sudden, you can’t send or receive e-mail.

Why?

Your mailbox may be full.

Your computer doesn’t actually send and receive e-mails directly. Your mail clientsoftware, either Microsoft Outlook, Mozilla Thunderbird, SeaMonkey, Apple Mail etc. will send and receive mail via the Internet’s version of the local post office, your Internetservice provider’s mail server. Your provider sets aside storage space on their servers to store mail while you are not connected to it (when your mail software isn’t running). Most providers have a limit of how much mail you can store on their servers, and the mail stored on their servers. If your provider offers webmail as a service, only the mail stored at the provider’s servers will be visible in your mailbox.

When this storage space at the servers is used up (full) you cannot send or receive any more e-mail until you delete something. It’s more or less the same as having a post office box at the post office, and the box being too full to cram any more letters into. Periodically, you have to go to the post office and empty it. Big parcels will fill the box faster than small letters. With e-mail, the big parcels are e-mails with attachments, or e-mails with pictures or video embedded in them. The bigger the mail messages are, the faster the mailbox fills up. Consider carefully what you send and receive.

Let me show you how to fix this…


Just How Much Mail Do You Have?

Here’s how to find out how much mail is actually in your mailbox:

Microsoft Outlook
With your mouse, right-click on your Inbox and then select Properties from the menu.




Outlook 2010 – Inbox Properties
A window will appear. Click the button labeled Folder Size




Outlook 2010 – Folder Properties
A window will appear. The total amount of space used by your e-mail at the server is shown in kilobytes. This number needs to be less than the total space your InternetService Provider (ISP) has put aside for you.




Outlook 2010 – Folder Sizes


Emptying the Mailbox

To empty your mailbox, you can try several things:
Easiest/Good- deleting individual old email messages, starting with the oldest e-mails with attachments. This usually helps, but only for a short time.
Not as Easy/Better – Use Outlook’s mail purging tools, only works for a short time.
Hard/Best - Configure Outlook so that the mailbox never fills up.
Impossible/Worst – Ask your provider to delete the mail.

First step in this tutorial is to make my lawyers happy:


WARNING: The section below outlines a procedure for configuring Outlook to automatically delete e-mails that could be devastating to your inbox if misconfigured. I make no guarantee or warranty as to the usability, appropriateness, applicability of the steps shown below. By continuing, you agree to release us from all liability and hold us blamless for any financial, personal or other problems caused by the deletion of e-mails.

We’re going to reconfigure Outlook to automatically delete mail from the server so that the mailbox never fills up. It’s not complicated, it is just a few steps.


How to Configure Outlook to Automatically Clean Up Your Mailbox

Done correctly, the steps I’m showing you won’t actually cause any mail to be lost if you’re using Outlook. Your mail client will have downloaded the e-mail already and stored it on your computer, so deleting the oldest and unwanted e-mails from the mail server is safe. The only problem you will see is when you use the webmail service–webmail will only show the mail stored on the server. When you delete mail via webmail, it’s permanently gone.

You can modify Outlook 2010′s mail retention settings by opening the Account Settings Controls.



Click the File menu tab:


Outlook 2010 File Tab



Click the Account Settings button and select Account Settings:


Outlook 2010 Account Settings



Left click the correct e-mail account name, then click the Change button:


Outlook 2010 – Account Settings – Change



Click the More Settings button (you might want to un-check the Test Account Settings by…checkbox first):


Outlook 2010 – More Settings





Click the Advanced Settings Tab.


Outlook 2010 – Leave Copy on Server Settings



By default, the “Remove from server when deleted from ‘Deleted Items’” option isnot checked in Outlook, so mail never gets deleted and your mailbox fills up. You must check the box to have any hope of shrinking the mailbox at the server.

If the Remove from server checkbox is already checked, try lowering the number of days mail will be left on the server if it is greater than 14 days. You will also need to turn on the “Empty the Trash on Exit” setting to automatically purge the deleted items folder when you close Outlook.


Empty Deleted Items Folder on Exit

To empty the Deleted Items when you close Outlook:
Click the Filemenu tab:


Outlook 2010 File Tab


Click Options


Outlook 2010 – File > Options


Click the “Empty Deleted Items folder on Exit” checkbox, click OK




Empty Deleted Items on Exit


A Clean Mailbox

From now on, whenver you download mail and shut down Outlook, any mail you deleted will be deleted from the server and mail you have not deleted will be removed from the server after the number of days you selected. These two settings will keep your mailbox from getting out of control. Short of a flood e-mails with large attachments, you will have prevented any future ‘mailbox full’ errors.


Friday, August 2, 2013

சுதந்திர மென்பொருள்: வீட்டுக்கடன் EMI கணக்கு போடுவது எப்படி?

சுதந்திர மென்பொருள்: வீட்டுக்கடன் EMI கணக்கு போடுவது எப்படி?: EMI (Equated Monthly Instalments) கணக்கு போடுவது இன்னும் எனக்கு ஒரு புதிராகவே உள்ளது. எனக்கு மட்டும் இல்லை. உங்களில் பலருக்கும் இதே நிலைமை...