[
Advertise | Submit Code | About us | Contact us | Link us
]
Go!
Membership Services
Login
Register

Home
C# General

General

C# Language

Design & Architecture

Algorithms

Database

Security

Active Directory

COM Interop

Remoting
C# Windows Forms

General

Combo and List boxes

Miscellaneous Controls

Button Controls

Edit Controls
Cutting Edge

ASP.NET 2.0

Visual Studio 2005

Windows Longhorn

SQL Server 2005
C# Multimedia and GDI+

General

DirectX

GDI+

Audio
Internet & Web

General

Images and multimedia

Database

Utilities

Security

ASP.NET Controls

Design and Architecture

Webservices
.NET

General

Design & Architecture

Algorithms

Database

Security

Active Directory

COM Interop

Remoting

ADO.NET

XML.NET

Tools

Enterprise

IDE
Visual Basic .NET

VB.NET General

VB.NET Controls
General Reading

.NET Books Review

Product Showcase

Book Chapters

Business Design & Strategy
Community

Discuss

Job Board

Discussion

CodeXchange
DeveloperLand

Advertise

Submit Code

About us

Contact us

Link us
Miscellaneous

Favorite Links

Downloads

Programming Sites

Top Stories
Regular Expressions

E-Mail

Date/Time
Home > C# General > C# Language
Objects & Classes in C#
Posted by on Monday, September 20, 2004 (EST)

In this article we will understand some of the concepts of object-oriented programming in C# like objects and classes. To read this article you must have C# programming basics.

This article has been viewed: 2,562 times
Technology: C# Language.

Contents

Introduction:

OOP stands for Object-Oriented Programming. OOP is relatively a new way to program computer applications. Before OOP programmers used to creating computer applications using procedural-programming (or structure-programming) but when OOP solved a lot of the problems of the procedural-programming so almost all of the programmers and developers began using OOP languages. In procedural- programming all the program functionality written in a few modules of code or maybe one module (depending on the program) and these modules depend on one another and maybe if you change a line of code you will have to rewrite the whole module again and maybe the whole program but in Object-Oriented Programming programmers write independent parts of a program called classes each class represent a part of the program functionality and these classes can be assembled to form a program and when you need to change some of the program functionality all what you have to do is to replace the target class which may contain a problem. So in OOP applications create by the use of classes and these applications can contain any number of classes. That will get us to discuss the Class and Object concept.

Top Go to Table of Contents

Classes and objects:

You may find it not easy to understand the class and object story but I will try to do my best explaining it. Actually the class and object concept is related to each other and some beginners don't care about understanding it clear so I think they will have a hard times learning C#.

Object-Oriented concept takes the most of its functionality from the real-life concepts. For example, I will discuss the concept of Classes and Objects of the world first and then you will understand the computer's Classes and Objects before I even write anything about it.

Top Go to Table of Contents

World's Classes and Objects:

In our world we have a classes and objects for those classes. Everything in our world considered to be an object. For example, people are objects, animals are objects too, minerals are objects, everything in the world are objects. Easy right ? but what about classes. In our world we have to differentiate between objects that we are living with. So we must understand that there are a classifications (this is how they get the name and the concepts of the Class) for all of those objects. For example, I'm an object, David is object too, Maria is another object so we are from a people class (or type). I have a dog called Ricky so it's an object, My friend's dog called Doby is also an object so they are from a Dogs class (or type). A third example, I have a computer Pentium III this is object, My friend have a computer Pentium IIII so this is another object and they are from a Computers class (or type). Now I think you got the concept of the Class and Object but let me crystallize it for you. In our world we have a classifications for objects and every object must be from some classification. so a Class is a way for describing some properties and functionalities or behaviors of a group of objects. In other words, The class considered to be a template for some objects. So maybe I will create a class called person so this is a template of the functionality and the properties of persons. I explained it by more than a way so wait until you see the first example and I think you will grasp it completely.

Top Go to Table of Contents

Computer's Classes and Objects:

Computer's Classes discussion is similar to what you grasp from the last section with some modifications to become computerized.

A C# Class Considered being the primary building block of the language. What I mean by the primary building block of the language is that every time you work with C# you will create Classes to form a program. We use Classes as a template to put the properties and functionalities or behaviors in one building block for some group of  objects and after that we use that template to create the objects we need. For example, We need to have persons objects in our program so the first thing to do here is to create a Class called Person that contains all the functionalities or behaviors and properties of any person and after that we will use that Class or template to create as many objects as we need. Creating object of a specific class type called "instance of the class". Don't worry if you didn't grasp it 100% and don't worry if you don't know what's the Class and Object's properties and functionalities or behaviors because we still in the beginning and until now I didn't give any code examples. So let's take a brief of what's the Class and what's an object ?

The Class : Is a building block that contains the properties and functionalities that describe some group of objects, We can create a class Person that contains:

1- The properties of any normal person on the earth like : Hair Color, Age, Height, Weight, Eyes Color.

2- The functionalities or behaviors of any normal person on the earth like : Drink water, Eat, Go to the work and later we will see how we can implement the functionalities or behaviors and properties.

There are 2 kinds of classes : The built-it classes that come with the .NET Framework and called Framework Class Library. And the programmer defined-classes which we create it.

The class contains data (in the form of variables and properties) and behaviors (in the form of methods to process these data). We will understand this concept more later in the article.

When we declare a variable in a class we call it member variables or instance variables. The name instance come from the fact that when we create an object we instance a class to create that object so instance of a class means object of that class and instance variable means variable that exists in that class.

The Object : It's object of some classification (or class, or type. All means the same thing) and when you create the object you can specify the properties of that object. What I mean here is me as an object can have a different properties (Hair Color, Age, Height, Weight) of you as another object. For example, I have a brown eyes and you have a green eyes so when I create  2 objects I will specify a brown color for my object's Eyes Color property and I will specify a green color for your object's Eyes Color property.

So to complete my introduction to Classes we must discuss Properties and Variables.

Top Go to Table of Contents

Properties and Variables:

Variables declared in a class store the data for each instance, What that means ? means that when you instantiate this class (that is, When you create an object of this class) the object will allocate a memory locations to store the data of its variables. Let's take an example to understand it well.

class Person
{
    public int Age;
    public string HairColor;
}

This is our simple class which contains 2 variables. Don't worry about public keyword now because we will talk about it later . Now we will instantiate this class (that is, When you create an object of this class).

static void Main(string[] args)
{
    Person Michael = new Person();
    Person Mary = new Person();
    // Specify some values for the instance variables
    Michael.Age = 20;
    Michael.HairColor = "Brown";
    Mary.Age = 25;
    Mary.HairColor = "Black";
    // print the console's screen some of the variable's values
    Console.WriteLine("Michael's age = {0}, and Mary's age = {1}",Michael.Age,
        Mary.Age);
    Console.ReadLine();
}

So we begin our Main method by creating 2 objects of Person type. After creating the 2 objects we initialize the instance variables for object Michael and then for object Mary. Finally we print some values to the console. here when you create Michael object C# compiler allocate a memory location for the 2 instance variables to put the values there. Also the same thing with Mary object the compiler will create 2 variables in the memory for Mary object. So each object now contains a different data. Note that we directly accessed the variables and we put any values we want, Right ? so maybe someone doesn't like me will put in my object's variable Age value of 120 years so I will not get any kind of jobs. But wait there are a solution for this problem. We will use properties.

Top Go to Table of Contents

Properties:

Properties is a way to access the variables of the class in a secure manner. Let's see the same example using properties.

class Person
{
    private int age;
    private string hairColor;
    public int Age
    {
        get
        {
        return age;
        }
        set
        {
            if(value <= 65 && value >= 18)
            {
                age = value;
            }
            else
                age = 18;
        }
    }
    public string HairColor
    {
        get
        {
            return hairColor;
        }
        set
        {
            hairColor = value;
        }
    }
}

I made some modifications but please just care about the new 2 properties that I created it here. So the property consists of 2 accessor. The get accessor which is responsible of retrieving the variable value, And the set accessor which is responsible of modifying the variable's value. So The get accessor code is very simple we just use the keyword return with the variable name to return its value. so the following code:

 get
        {
            return hairColor;
        }

return the value stored in hairColor.

Note :the keyword value is a reserved keyword by C# (that is, reserved keywords means that these keywords own only by C# and you can't create it for other purpose. For example, You can't create a variable called value .If you did that C# compiler will generate an error and to make things easier Visual Studio.NET will color the reserved keywords to blue.)

Let's put this code at work and after that discuss  the set accessor.

static void Main(string[] args)
{
    Person Michael = new Person();
    Person Mary = new Person();
    // Specify some values for the instance variables
    Michael.Age = 20;
    Michael.HairColor = "Brown";
    Mary.Age = 25;
    Mary.HairColor = "Black";
    // print the console's screen some of the variable's values
    Console.WriteLine("Michael's age = {0}, and Mary's age = {1}",Michael.Age,
        Mary.Age);
    Console.ReadLine();
}

Here I created the same objects from last example the modifications that I used only properties to access the variable instead of access it directly. Look at the following line of code

Michael.Age = 20;

When you assign a value to the property like that C# will use the set accessor. The great thing with the set accessor is that we can control the assigned value and test it and maybe change to in some cases. When you assign a value to a property C# change the value in a variable and you can access the variable's value using the reserved keyword value exactly as I did in the example. Let's see it again here.

set
        {
            if(value <= 65 && value >= 18)
            {
                age = value;
            }
            else
                age = 18;
        }

Here in the code I used if statement to test the assigned value because for some reason I want any object of type Person to be in age between 18 and 65. Here I test the value and if it in the range then simply I will store it in the variable age and it it's not in the range I will put 18 as a value to age. It was just a simple example for the properties but there is a complete article about properties soon.

Top Go to Table of Contents

How we create objects and classes ?

We create classes by define it like that:

using the keyword class followed by the class name like that

class Person

then we open a left brace "{" and after we write our methods and properties we close it by a right brace "}". That's how we create a class. Let's see how we create an instance of that class.

In the same way as we declare a variable of type int we create an object variable of Person type with some modifications:

int age;
Person Michael = new Person();

In the first line of code we specified integer variable called age. In the second line we specified first the type of Object we need to create followed by the object's name followed by a reserved operator called new and we end by typing the class name again followed by parenthesis "()".

Let's understand it step-by-step. Specifying the class name at the beginning tell the C# Compiler to allocate a memory location for that type (C# compiler knows all the variables and properties and methods of the class so it will allocate the right amount of memory). Then we followed the class name by out object variable name that we want it. The rest of the code "= new Person();" call the object's constructor. We will talk about constructor later but for now understand that the constructor is a way to initialize your object's variable while you are creating it not after you create it. For example, The Michael object we created it in the last section can be written as following :

Person Michael = new Person(20, "Brown");

here I specified the variable's values in the parameter list so I initialized the variables while I'm creating the object. But for this code to work we will need to specify the constructor in the Person class and I will not do that here because constructor section will come in later articles. I think you got a good introduction about Classes and Objects not I will complete in in my next article and I will talk about constructors and building block scoping. I hope you got a new thing from my article.

Top Go to Table of Contents

About michael labib

Click here if you want to know more about .

Other articles that may interest you

  • Write a Word Add-In – Part 0
  • Write a Word Add-In – Part I
  • Lengthy Operations on Single Thread in .NET Application
  • Learning Draughts
  • Exceptions and Performance
  • Average Rating :

    Discussion Forums
    Got a programming related question? Hopefully someone has the answer... Want to help out other developers? Visit our discussion forums.

    Sponsored by:

    New Articles

  • Exceptions and Performance
    Almost every time exceptions are mentioned in mailing lists and newsgroups, people say they're really expensive.Let's examine that claim, shall we?

  • Creating multilingual websites - Part 1
    Extend the existing globalization capabilities of .NET to create flexible and powerful multilingual web sites. First, create a custom ResourceManager, and then create custom localized-capable server controls to easily deploy multilingual functionality.

  • Parameter passing in C#
    Many people have become fairly confused about how parameters are passed in C#, particularly with regard to reference types. This page should help to clear up some of that confusion

  • Most Popular Articles

  • LDAP, IIS and WinNT Directory Services
    This article explains how to use .NET Directory Services to retrieve and search directory objects, create new directory objects and edit or delete existing directory objects. Describes Active Directory Application Mode (ADAM) and how to use the IIS, WinNT and LDAP directory (ADSI) provider.

  • An in-depth look at WMI and instrumentation, Part II
    WMI stands for Windows Management Instrumentation and, as the name indicates, is about managing your IT infrastructure this article is the second part of a two-part series.

  • An in-depth look at WMI and instrumentation, Part I
    WMI stands for Windows Management Instrumentation and, as the name indicates, is about managing your IT infrastructure this article provides an in-depth look at WMI and MOM 2005

  • New Books

  • Murach's ASP.NET 2.0 Upgrader's Guide: VB Edition
    What’s new and how to use it! That’s what this book delivers if you’re a VB developer who’s interested in upgrading from ASP.NET 1.x to ASP.NET 2.0.

  • C# in easy steps
    Learn to program with Microsoft’s premier programming language. No previous programming knowledge is assumed. With numerous easy-to-follow examples, this title explains the essentials of object-oriented programming with C#.

  • Murach's ASP.NET web programming with VB.NET
    Murach's ASP.NET web programming with VB.NET by Doug Lowe and Anne Prince is a in depth training and reference book for ASP.NET programming using VB.NET. The book builds upon Murach's previous books and covers more advanced concepts for programming ASP.NET pages.

  • Got Code?

    if you have any article , source code , or anything else you'd like to share with this community that you think others might find useful, please submit it here and we will gladly make it available on this site. submit@developerland.com.
    Partners

    All articles are copyrighted by their individual authors unless otherwise specified , everything else Copyright ©2004-2006 DeveloperLand