Encapsulation

Is about creating a boundary around an object to separate its public and private implementation details in the class file.

Example

public class Contact
{
	private string fname;
	private string lname;
	private string emailaddr;
	private string phoneno;
	private string addr;
	private string cname;
	private byte[] photo;
	private DateTime dob;

	public string FirstName
	{
		get { return fname; }
		set { fname = value; }
	}

	public string LastName
	{
		get { return lname; }
		set { lname = value; }
	}

	public string EmailAddress
	{
		get { return emailaddr; }
		set 
		{
			if(emailaddr.Contains("@") && emailaddr.Contains("."))
			{
				emailaddr = value;
			}
			else 
			{
				throw new Exception("Invalid Email address!");
			}
		}
	}

	public string PhoneNo
	{
		get { return phoneno; }
		set { phoneno = value; }
	}

	public string Address
	{
		get { return addr; }
		set { addr = value; }
	}

	public string CompanyName
	{
		get { return cname; }
		set { cname = value; }
	}

	public byte[] Photo
	{
		get { return photo; }
		set { photo = value; }
	}

	public DateTime BirthDate
	{
		get { return dob; }
		set
		{
			if ((DateTime.Today.Year - value.Year) > 18)
			{
				dob = value;
			}
			else
			{
				throw new Exception("Invalid birth date. Age must be greater than 18.");
			}
	    }
    }
}

The Contact class stores contact information in private variables which are hidden from the external access. The access to the private variables can be granted through public properties.

Leave a Reply

Your email address will not be published. Required fields are marked *