Article Options
Recently Viewed
Premium Sponsor
Premium Sponsor

 »  Home  »  .NET Newbie  »  A Practical Introduction to OOP. Part 1 - You ARE an OOP Programmer!
A Practical Introduction to OOP. Part 1 - You ARE an OOP Programmer!
by Mike McIntyre | Published  01/22/2004 | .NET Newbie | Rating:
Mike McIntyre

I am a system architect, developer, and project manager for aZ Software Developers, LLP.

I feel very lucky because my work at aZ Software Developers allows me the time to be an active mentor, trainer, and coach in the Microsoft .NET technical community.

DevCity is my favorite community site. Click to see my DevCity profile -> Mike McIntyre

 

 

View all articles by Mike McIntyre...
A Practical Introduction to OOP. Part 1 - You ARE an OOP Programmer!

Updated: 01/22/2004

Article source code: practical_oop_1.zip

Requirements:

  • Any edition of Visual Studio.NET 2002 or 2003
  • Entry level VB.NET skills.

Introduction

Have you used the last few versions of VB.OLD? - You ARE an OOP Programmer!

Have you tried the Hello World! example in .NET? - You ARE an OOP Programmer!

It is impossible to do any programming with Microsoft. NET without using object-oriented programming (OOP). Though you may not have yet written classes of your own and used them to create objects - you have created objects from the classes of the .NET Framework and used the objects in your applications.

Using Objects is OOP

Consider the code below. It declares a variable for use with a specific data type. It uses a class constructor to instantiate an object. It assigns an object's reference to a variable. It assigns a value to an object property. It calls an object method to perform an action.

    ' Declare a variable named aButton for use with a Button data type.
    Dim aButton As Button

    ' Use the Button class' New Button() constructor to instantiate
    ' (create) a Button object.
    ' Assign the Button object's reference to the aButton variable.
    aButton = New Button()

    ' Set the Visible property of the Button object to True.
    aButton.Visible = True

    ' Call the BringToFront method of the Button object.
    aButton.BringToFront()

Have you done similar things with the .NET Button class? Have you used another .NET class to create a TextBox object, a ListBox object, a Label object, or another .NET form control object? Have you created and used a Form object?

If so - You are an OOP Programmer!

If so, why do you have trouble using other more complex classes from the .NET Framework? Why do you find it hard to code classes of your own? Why does .NET seem so complex and intimidating? Why can't you create the nifty user control you have in mind? WHY DO YOU KEEP GETTING THE ERROR "An unhandled exception of type 'System.NullReferenceException' occurred"?

Why? It is because you need to expand your OOP programming skills. Microsoft®.NET raises the bar on what you need to know about OOP to be a good VB.NET programmer. The simple use of objects learned using previous versions of Visual Basic and the simple things you have learned to do with VB.NET is not enough to master OOP programming with the .NET Framework Class Library or to create powerful objects of your own.

There is good news. It is not hard to increase your OOP programming skills. You need to learn a just a few new concepts, study some examples, and put what you learn to work.

The Concepts

Listed below are the concepts covered in this three part article. The concepts are grouped and ordered as they will appear in the article

Part One

  • Computer Memory, Application Memory, Stack, Heap, Variable
  • Data Type, Value Type, Reference Type, Type Declaration, Class, Object
  • Class Member, Field, Property, Method, Event

Part Two

  • Constructors
  • Destructors

Part Three

  • Abstraction
  • Encapsulation
  • Polymorphism
  • Inheritance

These are very powerful concepts. Master these concepts and you will be well on the way to becoming a full-fledged OOP programmer.

Computer Memory, Application Memory, Stack, Heap, Variable

Computer Memory is the electronic holding place for instructions and data that your computer's microprocessor can reach quickly. When your computer is in normal operation, its memory usually contains the main parts of the operating system and some application programs and related data that are being used. Memory is distinguished from storage; storage is a medium that holds the much larger amounts of data that won't fit into RAM and may not be immediately needed there. A database is a good example of storage, as is a file on a hard disk.

Application Memory is the portion of a computer's memory allocated by the Windows operating system to a running application. Application Memory consists of two memory locations; 1) the stack and; 2) the heap.

Application Memory

 Stack

Heap

The stack and the heap are the two locations in application memory that must kept in mind as OOP is performed.

A variable is a named location in memory. You declare a variable to set aside a location in memory, give it a name, and define the type of data that can be used with the variable.

Data Type, Value Type, Reference Type, Class, Object

A data type is a set of values from which a variable may take its value. Examples of data types are Integer, String, Boolean, Button, Textbox, and Form.

    'Declare a variable named myInteger of data type Integer.
    Dim myInteger As Integer

    'Declare a variable named aButton of data type Button.
    Dim aButton As Button

Data types are categorized as either a value type or a reference type. Below are some examples of data types from each category.

Value Type Data Types - Byte, Integer, Single, Double, Boolean, Char, Struct, Enum

Reference Type Data Types - Array, Button, Form, Collection, DataSet, Font

The category of a data type determines how it will be contained in memory.

Value Type - A variable declared as a data type from the value type category is structured in memory to directly contain a value.

    'An Integer is a data type which is categorized as a value type.
    ' Declare a variable named myInteger of data type Integer.
    Dim myInteger As Integer
    'Assign the value 1 to the myInteger variable.
    myInteger = 1

After running the code above the result is a variable in memory named myInteger that directly contains the value 1.

Application Memory

 Stack

Heap

myInteger

1

 

Reference Type - A variable declared as a data type from the reference type category is structured to contain a reference to an actual object in the heap, not the actual object.  A reference is a number that is a memory address where an object exists in the heap.

    'A Button is data type which is categorized as a reference type.
    'Declare a variable named myButton of data type Button.
    Dim myButton As Button

After running the code above the result is a variable in memory named myButton that can contain a reference to button object in the heap. AT THIS POINT THE VALUE OF THE myButton VARIABLE IS NULL.

Application Memory

 Stack

Heap

myButton

NULL

 

    'Create a new Button object in the heap and assign its reference
    'to the aButton variable.
    myButton = New Button()

After running the code above the myButton variable contains a reference to a button object in the heap. The reference is an integer which is the address where the button object begins in the heap. In the example 12034511 is the address of the button object in the heap.

Application Memory

 Stack

Heap

myButton

12034511

12034511

button object

Note: You may hear other programmers refer to a reference as a pointer. In .NET the proper term is reference. .NET documentation and error messages use the word reference as you will see in the next section.

A Common Error

Have you seen this error?

The error message says:

An unhandled exception of "System.NullReferenceException" occurred ...

Additional information: Object reference not set to an instance of an object.

This error occurs when an attempt is made to use a reference type variable which has been declared but has not been assigned a reference to an actual object. The variable contains a NullReference. The last line of code below will raise the NullReferenceException error.

    'Declare a variable named myButton of data type Button.
    Dim myButton As Button
    'Attempt to set the BackColor property of using the abutton variable.
    myButton.BackColor = Color.Blue

The first line of code declares myButton as a reference type variable that can contain a reference to a button object.

The last line of code attempts to use myButton before it has been assigned a reference to a button object. When the last line attempts to change the BackColor property using the myButton variable, this is what exists in memory:

Application Memory

 Stack

Heap

myButton

NULL

 

The interpreter can not find a reference to a button object in the myButton variable so it throws a System.NullReferenceException. There is a NULL (Nothing) value stored in the myButton variable instead of a reference to a button object in the heap.

Before the myButton variable can be used a button object must be assigned to it. A new button could be created and assigned to myButton OR an existing button could be assigned to myButton.

To correct the problem, code is added to create a new Button object and assign its reference to the myButton variable:

    'Declare a variable named myButton of type Button
    Dim myButton As Button
    'ADDED: Create a new Button object in the heap 
    'and assign its reference to the aButton variable.
    myButton = New Button()
    'Change the BackColor property of the button object
    'referenced by the myButton variable.
    myButton.BackColor = Color.Blue

Now when the last line of code executes, the myButton variable references a button object in heap memory. The BackColor of the object will be changed to Blue.

Application Memory

 Stack

Heap

myButton

12034511

12034511

button object

Class Member, Field, Property, Method, Event

In the code examples earlier in this article, how did .NET know how to create a new Button object? How did it know what parts and pieces make up a button object?

.NET used the Button class to instantiate (create) a Button object in the heap. In object-oriented programming, you instantiate a class to create an object, a concrete instance of the class. 

A class is code that defines a structure which can be used to instantiate an object in memory. The .NET compiler uses class code as a template to create a real thing - an object - in an application's heap memory.

There are thousands of classes in the .NET Framework. Each class defines a structure you can use as a building block for your application. There are classes to instantiate objects that serve as form controls, data structures, drawing tools, data providers, and many more.

To understand how to use the .NET Framework class' building blocks and to author your own powerful classes you must learn more about class statements.

A class statement declares: the name of a class and the variables, properties, events, and methods that comprise the class. A sample class statement is shown below.

Friend Class LogOnHelper

    Private _UserName As String = ""

    Friend Property UserName() As String
        Get
            Return _UserName
        End Get
        Set(ByVal Value As String)
            _UserName = Value
        End Set
    End Property

    Event Authorized()
    Event Rejected()

    Friend Sub VerifyUserName(ByVal CurrentUser As String)
        If _UserName = CurrentUser Then
            RaiseEvent Authorized()
        Else
            RaiseEvent Rejected()
        End If
    End Sub

End Class

The variables, properties, events, and methods in a class statement are called class members. Class members are the code ingredients that define the structure of a class.

The class members of each of the thousands of classes in the .NET Framework Class Library are documented in the Visual Studio.NET help system. Knowing how to locate a class members topic in .NET Help is absolutely necessary for putting the .NET Framework Classes to best use.

To see how important a class member topic can be to your programming efforts please take a moment to examine the Button Members topic in .NET Help. Search VisualStudio.NET Help using "Button Members" as the search string. Please print the Button Members topic for use with this article. Note: I used the Visual Basic and Related help filter when I found the topics for this article.

Examine the Button Members topic you have printed. For now focus on the Public Properties, Public Methods, and Public event sections. These three sections document the Public members of the Button class - the members available when a Button object is deployed in program code.

Field and Property Members

Properties and Fields represent information stored in an object. Properties and Fields are defined by Field and Property statements within a class statement.

Field members are not shown in .NET class members topics. Field members are private variables within the class. If a programmer using a class is allowed to change and/or read the value of a field member within a class, a Property member will be included in the class. A Property member will provides controlled access to the field member.

The values of an object's Fields and Properties are set and retrieved by the programmer using assignment statements the same way variables are set and retrieved. Examine the Public Properties section of the Button Members help topic. Find the BackColor property. According to the help topic, the BackColor of a button object is used to set or get the BackColor of a Button.

    'Set the BackColor Property of a Button
    aButton.BackColor = Color.Blue

    'Get the BackColor Property of a Button
    MessageBox.Show(aButton.BackColor.ToString)

Behind the BackColor property in the class statement there is a private Field variable that stores the BackColor value. The set statement above changes the value of the Field. The get statement above retrieves the value of the field.

Method Member

Methods represent actions an object can be called to take. Methods are defined by subroutine and function statements within a class statement.

An object's methods are called by the programmer like subroutines or functions.

Examine the Public Methods section of the Button Members .NET help topic. Find the Hide method. According to the help topic, the Hide method of a Button object is used to conceal the Button object from the end user.

    'Hide a Button.
    aButton.Hide()

In the Button class there is a public method named Hide. At runtime the statement above will call the Hide method for a button object in the heap referenced by a variable named aButton.

Event Member

Events represent notifications an object can broadcast. Events are defined in Event and RaiseEvent statements within a class statement.

Examine the Public Events section of the Button Members help topic. Find the Click event. According to the help topic the Click event is raised when the Button object is clicked. A handler can be included in program code that responds to a button object's Click event.

Review

In part one of this article the concepts below have been covered:

  • Computer Memory, Application Memory, Stack, Heap, Variable
  • Data Type, Value Type, Reference Type, Type Declaration, Class, Object
  • Class Member, Field, Property, Method, Event

To review what you have learned please download, decompress, and open the YouAreAnOppProgrammer project linked to this article.

In the project is a class called LogOnHelper. This LogOnHelper class is defined using class members as described in the article. Examine the class statement in the LogOnHelp.vb file.

You may find it useful to open two copies of the project, one to examine the code and one to run so you can see the application in action.

Examine the code in the LogOnForm.vb file to see how the LogOnHelper class is instantiated and the resulting LogOnHelper object is used.

As you review the LogOnHelper class and the LogOnForm class notice how the concepts covered in this article are put to use in the sample project.

A LogOnHelper Members topic is provided below.

Class Name: LogOnHelper

Members:

Public Properties

Name Description
UserName Gets or sets the name of an authorized user.

Public Methods

Name Description
VerifyUserName Verifies the name provided by a user matches the authorized user name.

Public Events

Name Description
Authorized Occurs when the user name provided by a user matches the authorized user name.
Rejected Occurs when the user name provided by a user does NOT match the authorized user name.
How would you rate the quality of this article?
1 2 3 4 5
Poor Excellent
Tell us why you rated this way (optional):

Article Rating
The average rating is: No-one else has rated this article yet.

Article rating:4.50495049504949 out of 5
 101 people have rated this page
Article Score33532
Related Articles
Comments    Submit Comment

Comment #1  (Posted by Mohammed Al-Shibli on 03/18/2003)

Its great job dear, thanx for this article.
 
Comment #2  (Posted by Graham Hillier on 03/19/2003)

Wow, talk about switching a light on in a dark room! Great article that has made a quite a few things fit into place. Damn shame that I have to wait for the next installment, it has whet my whistle and I will need to re-write a couple of my Classes to use Properties instead of Public variables.
 
Comment #3  (Posted by Ashok Gupta on 03/21/2003)

Nice stuff to read ! Thanks
 
Comment #4  (Posted by Herkimehr on 03/23/2003)

Nice article and great solution.It's a great help to new OOP programmers.Thanks
 
Comment #5  (Posted by Brian on 03/25/2003)

Thanks for a great article! This has really made OOP much more clear to me. I wish I had had something this plain to understand a long time ago.
 
Comment #6  (Posted by Jim Rogers on 03/26/2003)

A clear explanation of OOP basics, using VB.NET.

However, in the article source code, is the method of processing the Authorized and Rejected Events intended to illustrate a general approach to handling Events? A follow-up comment on this topic would be appreciated.
 
Comment #7  (Posted by Michael McIntyre on 03/27/2003)

Jim Rogers asks:

>However, in the article source code, is the method of processing the Authorized
>and Rejected Events intended to illustrate a general approach to handling
>Events? A follow-up comment on this topic would be appreciated.

Jim,

The examples shown are a gentle introduction to handling an event.

More typical - and as will be shown in Part Three - is to declare the event to include two event arguments - 1) the object raising the event and 2) an event arguments object that carries information about the event.

In this scenario the event handler is constructed to receive the arguments. Here is an example of a more general approach:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'do some stuff with the sender and/or the System.Arguments
End Sub

This is a standard button click handler.

It receives the sender of the event as an SystemObject and the arguments of the event as a System.Arguments (also an object)


 
Comment #8  (Posted by Retrograde on 04/14/2003)

Well Done Mike, an excellant inroduction, so when will part 2 be available, as I am looking forward to getting my hands on the follow up article ???

Looking Forward
Keith
 
Comment #9  (Posted by Ethan Gilchrist on 04/23/2003)

*jaw drop* By jove! I think I've got it! Thank you! Becca's gonna be thrilled I finally got it! =D *gigglefit* Course I think I actually understood it before I'm just totally not confident at the moment and not trusting my instincts at all. *lol*

Ethan
 
Comment #10  (Posted by Yan on 04/29/2003)

It is a good article. Thanks.
 
Comment #11  (Posted by Walker on 05/05/2003)

When are you going to write a next article ? This article is great!
 
Comment #12  (Posted by Shadow on 05/30/2003)

GREAT overview!!! Too bad we pay so much for books where the author feels it's their duty too overstate and confuse the reader. More concise examples like this are definitely needed. Maybe the people responsible for the MS site should see this.
 
Comment #13  (Posted by Philippe D. on 06/23/2003)

Very nice document!
 
Comment #14  (Posted by Matthew on 08/13/2003)

Excellent article, i've been looking all over the web for such an article. I appreciate getting a straightforward view of how things are done. I'm sure once I get a firm understanding I will improve on projects at work.

I look forward to other articles from you.
 
Comment #15  (Posted by GP on 02/01/2004)

I never made it into OOP. The book I have that deals with the subject really doesn't explain it so you can understand it - it's common, isn't it?. With this article, you've lit a candle - hey man, I can see some light! I'm sure that with your explanation in this and future articles, I can make into the 21 century, with lots of electric light - no candles anymore. Thanks a lot for this great job.
 
Comment #16  (Posted by Niallc on 02/05/2004)

Just wanted to say thanks for the article. I've been studying Beginning VB.Net by Murach (which is a good book) but I was having a lot of difficulty understanding the ByVal and ByRef arguments. The article above has made it more clear...it also has a much better insight into the world of Instantiation and how objects are created.

Thanks once again Mike.

Rgds,
Niall

P.s It's articles like these that rejunivate my interest in VB.Net coming from a mostly non-programming background.
 
Comment #17  (Posted by Adrian Royce on 02/17/2004)

This is a top article, thanks. Very few people can explain what is happening under the covers in a way that adds to one's understanding.
 
Comment #18  (Posted by kis_jobs on 02/25/2004)

beautiful
 
Comment #19  (Posted by Deepak Kolapkar on 02/26/2004)

It's really a great article. It give's a good picturesque potrait of Stack and Heap of Application memory.
 
Comment #20  (Posted by Arif on 02/26/2004)

Wonderfully lucid, thank you!
 
Comment #21  (Posted by Kazmi Zohair on 03/03/2004)

Wow! what a great idea to teach the basics of oops.But how can i find the remaining two parts of ur oops classes.Thanks in advance
 
Comment #22  (Posted by Dave Y on 03/05/2004)

Thank you for the article. I am an entry level VB.Net programmer and your article was informative. I am looking forward to reading parts 2 and 3.
 
Comment #23  (Posted by Okan on 03/13/2004)

Realy good explanation. Thank you very much.
 
Comment #24  (Posted by Hiral Patel on 04/07/2004)

Excellent Article. Very neatly explained.
When are you posting remaining parts??
Eagerly waiting for them.

Cheers,
Hiral
 
Comment #25  (Posted by Durga Prasad on 04/08/2004)

A wonderful article on programming basics .. very good work
 
Comment #26  (Posted by G on 04/13/2004)

Bravo!
 
Comment #27  (Posted by balakumar on 04/26/2004)

Wonderful article..
 
Comment #28  (Posted by Randhir Kumar Panda on 04/27/2004)

Thanks a lot for the nice article.
Would appreciate if you could write some thing elaborately about 'Delegates' in your next article and how it is realated with 'Function Pointer'

Thanks in advance.
Randhir
 
Comment #29  (Posted by 2lits on 04/28/2004)

Great articles. You explained it a very straightforward manner. No Buzz....Thank You..Hope to read more on OOP in Advanced level like using serialization..Thanks
 
Comment #30  (Posted by Parikshit-india on 04/30/2004)

its a really nice article, thanks
i am waiting for ur next articles of this line, pls post ur new articles as early as possible, if u can mail me ur next articles i will be very greatful to
you



 
Comment #31  (Posted by Francisco Quintero on 05/09/2004)

It is a very interesting article, fine!
 
Comment #32  (Posted by Giles Beaumont on 05/11/2004)


 
Comment #33  (Posted by Ken Halter on 05/20/2004)

VB.Old? Let's just break out a stop watch and see which language needs to be put out to pasture mmmmkay?
 
Comment #34  (Posted by savithri on 06/02/2004)

excellent article. throwed lot of light on oops!
 
Comment #35  (Posted by Selassie on 06/07/2004)


 
Comment #36  (Posted by Joe Scully on 06/14/2004)

Can I ask where the rest of the articles in this series are?

The first one is excellent though!

Cheers

Joe
 
Comment #37  (Posted by Mike McIntyre on 06/14/2004)

As soon as DevCity is able to publish articles again part two will be published. No articles have been published since January.
 
Comment #38  (Posted by spoonman on 06/28/2004)

Is it worth publishing them elsewhere? I emailed them about the problem a while ago and they haven't replied or fixed it (so it would seem).
 
Comment #39  (Posted by Mike McIntyre on 06/28/2004)

Spoonman,

I know vbCity is installing a new content management system now so it won't be too much longer.
 
Comment #40  (Posted by Me on 07/05/2004)

Great !
 
Comment #41  (Posted by Srinivas Reddy Nalla on 07/16/2004)

Thanks for a gr8 article. It is soo simple to understand, yet effective. Three cheers!!
 
Comment #42  (Posted by Great article. every on 07/22/2004)

its useful for .net newbie very much.

thanks
basam nath
 
Comment #43  (Posted by Shriram on 08/04/2004)

One can know really what the dotnet and OOPS Mean...
Excelent Starting atricle.

Thanks to Author

Regards
Shriram
 
Comment #44  (Posted by Piyawat K on 08/05/2004)

So....Great!
 
Comment #45  (Posted by Hilal on 09/12/2004)

Hi Hi sir! i 'm sweet when i saw you , oh mamh so i wanna a little fruits drink
 
Comment #46  (Posted by M. Shahzad Amin on 09/13/2004)

A good comprehansive intro of OOP. Thanks but I think the difference between property members and method members is not very clear but I learn a lot from that paper, it is a good attempt. You should continue it.
 
Comment #47  (Posted by Todd on 09/14/2004)

This was a great article which turned the lights on for me.... however where is part 2 about constructors and deconstructors? I can't seem to find that article.
 
Comment #48  (Posted by carpenter852003 on 09/22/2004)

The logonhelper is an absolute stepping stone for beginner's like myself to achieve all the programming events that convey's a log in event handler. I have been looking for something like this in order to protect my own applications, such as the address book. Since this book contains addresses and phone numbers, the logonhelper will become the cohesive whole in this programming aspects of protecting important information. Is there something that I can use to create the log in information in order to enter my program? Such as the UserName and the Password events'?
 
Comment #49  (Posted by raulavi on 10/04/2004)

just what I was looking for. I been doing OOP but ,clear concepts like yours are the best for me and the next Newbies to come aboard.
thanks for taking some of your time to help all of us.
 
Comment #50  (Posted by JK on 11/01/2004)

Nice article to know the basics. It is very much required for developers who wishes to understand the .net platform
 
Comment #51  (Posted by Enrique on 11/10/2004)

Hi
You knows, I Knows .....that VB.OLD isn't OO Language


 
Comment #52  (Posted by Li on 11/14/2004)

Great article!!! Still haven't seen part 2 yet. Where can I get part 2 and part 3?
 
Comment #53  (Posted by Mubashir Hameed Koul on 12/08/2004)

Great Job. This article really improved my OOP skills. Thanks a lot and hope to see more articles in future.
 
Comment #54  (Posted by Ujjwala Sinha on 12/15/2004)

Its Excellent !!!! I cleared lots of doubt.I am looking forward to see updated
tutorial. Gud work once again
Regards,
Ujjwala Sinha
India

 
Comment #55  (Posted by an unknown user on 12/30/2004)
Rating
this is very beginner article but i like the stack and heap part.
 
Comment #56  (Posted by an unknown user on 01/10/2005)
Rating
This is great
Its helped me alot
thax
 
Comment #57  (Posted by an unknown user on 01/12/2005)
Rating
Thank a lot for this article.This has help me a lot in implementing oops concept.
 
Comment #58  (Posted by an unknown user on 01/12/2005)
Rating
Great information for newbies, otherwise the information is common knowledge. However it is good to post information like so that we do not take for granted the basic concepts of our trade.
 
Comment #59  (Posted by an unknown user on 01/12/2005)
Rating
Thank you
 
Comment #60  (Posted by an unknown user on 01/16/2005)
Rating
it hammers to the memory level of OOP!!
 
Comment #61  (Posted by an unknown user on 01/18/2005)
Rating
This is the way to get across all of the class arbitrations you must run into. The name with the type of control or variable. Name is what you want to call the control (variable), but he has gotten across the phrase 'Dim mybutton As Button' to name a button. Bob D.
 
Comment #62  (Posted by an unknown user on 01/26/2005)
Rating
Clear and readable. Simplicity is an art!
 
Comment #63  (Posted by B Doise on 01/26/2005)
Rating
clear and precise
 
Comment #64  (Posted by an unknown user on 01/26/2005)
Rating
Tied together some points that I had read before but the light hadn't gone on.
 
Comment #65  (Posted by an unknown user on 01/27/2005)
Rating
Good, well-rounded introduction to the basics.
 
Comment #66  (Posted by an unknown user on 01/27/2005)
Rating
Wow! Great info. I don't know if I'm just blind but I can't seem to find article 2 or 3. Shows this one was published a year ago. Have the other 2 not been written since then?
 
Comment #67  (Posted by Mike Spencer on 01/31/2005)
Rating
Helped me understand a few things, would like to know if the other 2 articles are posted?
 
Comment #68  (Posted by an unknown user on 01/31/2005)
Rating
The way of presentation is excellent. Anybody who has little or no idea about OOPS can easily understand what it acually means. The examples given are very clear.
 
Comment #69  (Posted by Rajkumar V on 01/31/2005)
Rating
The way of presentation and the content of the article is excellent. Anybody who has no or little idea of OOPs can easily understand what it actually mean. Thanks to the Author. I gained a lot and forwarder the same article to my friends also. They also said that the article is fantastic.

Thanks & Regards,
Raj
 
Comment #70  (Posted by Paul on 02/06/2005)
Rating
It has taken me days to find a tutorial that a. worked and b. was easy to understand but i think i speak for many here when I ask when is Part 2 and 3 coming. If this site is no longer accepting articles perhaps you could email it or have you posted them eslewhere in the meantime.

Thank you very much for the article it has helped so much.
 
Comment #71  (Posted by an unknown user on 02/07/2005)
Rating
i say it's great....
 
Comment #72  (Posted by an unknown user on 02/08/2005)
Rating
Nice article.
 
Comment #73  (Posted by an unknown user on 02/12/2005)
Rating
It is an excellent article, Thanx
 
Comment #74  (Posted by an unknown user on 02/12/2005)
Rating
It is an excellent article, Thanx
 
Comment #75  (Posted by an unknown user on 02/12/2005)
Rating
Average Article for beginner.
 
Comment #76  (Posted by an unknown user on 02/16/2005)
Rating
Great Work! Its the best article to understand the background of the Value type and reference type Data types, with lot more in simple words. Thanks for such a great stuff.
 
Comment #77  (Posted by an unknown user on 02/24/2005)
Rating
Really good article for the beginners. Most articles of this types are welcome.

 
Comment #78  (Posted by an unknown user on 02/25/2005)
Rating
The document explains things in detail along with the possible error which u usually get.
 
Comment #79  (Posted by an unknown user on 03/01/2005)
Rating
I FOUND THIS ARTICLE AS VERY EFFECTIVE FOR BOTH LEARNERS AND EXPERIENCED PROGRAMMERS. THE ARTICLE COVERS VERY WELL DEFINED SCRIPTS.

AMITAVA GHOSH
SR.SYSTEMS ANALYST
amitavaghoshg@hotmail.com

 
Comment #80  (Posted by Conan O Regan on 03/03/2005)
Rating
Very easy to understand article. Does anyone know anything about the next two parts?
 
Comment #81  (Posted by an unknown user on 03/30/2005)
Rating
i appericiate the nice way of this article to describe the things

naveen dhawan
software programmer,
navik technologies,
chandigarh
 
Comment #82  (Posted by an unknown user on 04/02/2005)
Rating
Gives very usefull stuff that I would use every day. Thanks
 
Comment #83  (Posted by an unknown user on 05/04/2005)
Rating
Basic information related in a concise and informal manner with Examples!--just what I needed.
 
Comment #84  (Posted by an unknown user on 05/10/2005)
Rating
When's the next instalment???
 
Comment #85  (Posted by an unknown user on 05/17/2005)
Rating
Hi Friends,
Its Really beautiful, Normally i will not understand anything easily, it will take more time, but its very clear - interesting - understandable even me.
Please tell me where are the continuation of this article (i.e) the Part II , Part III
i am not able to find as below anywhere A Practical Introduction to OOP. Part 2 - You ARE an OOP Programmer! , if anyone have idea about it please mail me. my email id is itchock@rediffmail.com

Thankyou,
Chock.
 
Comment #86  (Posted by Syed Zulfiqar on 05/26/2005)
Rating
Very nice, informative article about basics of OOP and using it in VB.Net.
How can i get next parts of this series.
Lot of Thanks.
 
Comment #87  (Posted by an unknown user on 05/26/2005)
Rating
A great introduction. Very clear!
 
Comment #88  (Posted by an unknown user on 05/26/2005)
Rating
This Article is better to understand , the things more appopirately then others
note : "It is only my opinion"
 
Comment #89  (Posted by an unknown user on 05/27/2005)
Rating
Excellent, very clear and non-assumptious about a certain knowledge about the topic. I hope to see a follow-up.
 
Comment #90  (Posted by an unknown user on 06/17/2005)
Rating
Its really a usefu l one and leads the user step by step
 
Comment #91  (Posted by an unknown user on 06/30/2005)
Rating
Great help for new programmers
 
Comment #92  (Posted by ravi mahar on 07/02/2005)

good one
 
Comment #93  (Posted by cyberiafreak on 07/06/2005)
Rating
Nice pictorial illustration...Good job
 
Comment #94  (Posted by an unknown user on 07/18/2005)
Rating
Thanks for explaining this in a way folks without a degree in computer science can understand.
 
Comment #95  (Posted by an unknown user on 08/20/2005)
Rating
Thanks again Mr.MikeMc.

 
Comment #96  (Posted by an unknown user on 08/20/2005)
Rating
Thanks again Mr.MikeMc.

 
Comment #97  (Posted by an unknown user on 08/29/2005)
Rating
it is a marvellous topic for oops.
 
Comment #98  (Posted by an unknown user on 09/05/2005)
Rating
Very Good article. General view and some examples to what a new person to vb.net is expected to know. Of course you can cover exhaustively such a wide are in this small space. A great good work.
 
Comment #99  (Posted by an unknown user on 09/13/2005)
Rating
Tank you.
 
Comment #100  (Posted by an unknown user on 10/10/2005)
Rating
This was very helpful. If you wrote a book in this format I'd be the first one to buy it. Some other stuff I'm having difficulty with: serializing data from classes - how, when and when not to etc etc..when to use datasets and XML or arrays. There are just so many options now its diffult to know which is best for each case without spending a load of time on testing.

Well done I'm looking forword to the next parts in the series.

Thanks.
 
Comment #101  (Posted by an unknown user on 10/10/2005)
Rating
This was very helpful. If you wrote a book in this format I'd be the first one to buy it. Some other stuff I'm having difficulty with: serializing data from classes - how, when and when not to etc etc..when to use datasets and XML or arrays. There are just so many options now its diffult to know which is best for each case without spending a load of time on testing.

Well done I'm looking forword to the next parts in the series.

Thanks.
 
Comment #102  (Posted by an unknown user on 10/14/2005)
Rating
it is easy for a beginner to know wat s oops
 
Comment #103  (Posted by an unknown user on 10/14/2005)
Rating
It's layout and oop prog info is right on the oop! It has given me a better understanding of the way oop is made up. I am also greatful for the coding info, on how it's done & what it means.
 
Comment #104  (Posted by an unknown user on 10/17/2005)
Rating
great!!!!!!!!!!!!
 
Comment #105  (Posted by an unknown user on 10/17/2005)
Rating
great!!!!!!!!!!!!
 
Comment #106  (Posted by Wil on 10/21/2005)
Rating
I just wanted to say that I have been learning VB.NET programming for some months now and have read several books and not once have I found a book that sits down and says, "This is what *this* concept is, this is what *that* does". They all seem to take the opinion that if they lead you through the nose in creating some fictitious project that you will magically understand what happened by seeing it done. This article answered all of my questions in a concise, clear manner and I have to say that I get it. The bad part about turning on that kind of light is that I can now see all of the problems with the application I've been working on...time to get to work fixing it ;)
 
Comment #107  (Posted by an unknown user on 11/11/2005)
Rating
Very inciteful to people like me who are in the process of migrating .NET
 
Comment #108  (Posted by an unknown user on 11/21/2005)
Rating
Very good article.simple explanation
 
Comment #109  (Posted by an unknown user on 11/25/2005)
Rating
THIS IS A GOOD ARTICLE ON OOPS.
 
Comment #110  (Posted by an unknown user on 12/19/2005)
Rating
Gives detailed description of OOP
 
Comment #111  (Posted by an unknown user on 12/20/2005)
Rating
simple, very structured, powerful. I havenot seen such an easy way of introducing .net anywher. Dear Mr. Mike where are the other two parts of artcile. Please post it or give me the link. .
With respect
anandavel_mcp@hotmail.com
 
Comment #112  (Posted by Firus on 12/21/2005)
Rating
Great stuff! Makes everything look so clear and simple.
 
Comment #113  (Posted by an unknown user on 12/22/2005)
Rating
nice stuff to read thanks
 
Comment #114  (Posted by an unknown user on 12/30/2005)
Rating
its very usefull, what a brilliant white light, im waiting for next parts. Thank you a lot
 
Comment #115  (Posted by an unknown user on 01/04/2006)
Rating
I have never seen such clear explanation for the memeroy stack/heap. Thanks...
 
Comment #116  (Posted by manish on 01/09/2006)
Rating
It's a crystal clear explanation of application memory(stack and heap). Really great Please do write something about dot net remoting in simple language as it is in great need to me.

 
Comment #117  (Posted by Vernon Fraser on 02/02/2006)
Rating
A very powerful structure for delivering the concepts of OOP using .NET. The information was very clear and easy to understand. I am also looking forward to part 2 and 3. I will be very grateful if I am able obtain more information on where to find those parts. Thank you very kindly.
 
Comment #118  (Posted by Vernon Fraser on 02/02/2006)
Rating
A very powerful structure for delivering the concepts of OOP using .NET. The information was very clear and easy to understand. I am also looking forward to part 2 and 3. I will be very grateful if I am able to obtain more information on where to find those parts. Thank you very kindly.
 
Comment #119  (Posted by an unknown user on 04/27/2006)
Rating
Easily undertsandable and helps to have good basics of oops.Is any one the continuation for this riase events..ect ot any good url for the rest of this topic
 
Comment #120  (Posted by an unknown user on 04/27/2006)
Rating
Easily undertsandable and helps to have good basics of oops.Is any one the continuation for this riase events..ect ot any good url for the rest of this topic
 
Comment #121  (Posted by an unknown user on 05/06/2006)
Rating
short and sweet. I am waiting for more.
 
Comment #122  (Posted by an unknown user on 05/06/2006)
Rating
short and sweet. I am waiting for more.
 
Comment #123  (Posted by an unknown user on 05/23/2006)
Rating
Thia the nice one i read.
 
Comment #124  (Posted by BubbleBoy on 08/21/2006)
Rating
Excellent. I have 2 beginner's books on VB and .Net and both of them explained the "how's" but not the "why's". They basically showed a bunch of code but didn't really explain what was happening behind the scenes. I just cannot retain information if I do not know the "why's". You turned on a light bulb. Very well done!
 
Comment #125  (Posted by an unknown user on 09/11/2006)
Rating
Clarity of concepts
 
Comment #126  (Posted by an unknown user on 10/24/2006)
Rating
A very nice article and it is understandable for every one, Thanks....
 
Comment #127  (Posted by an unknown user on 11/09/2006)
Rating
Gives clear picture about stack and heap.
 
Comment #128  (Posted by an unknown user on 11/09/2006)
Rating
Very nice article, it really helps every one to understand the basic in programming
 
Comment #129  (Posted by an unknown user on 01/19/2007)
Rating
i dint know all this about OOP programming?
 
Comment #130  (Posted by an unknown user on 03/06/2007)
Rating
practical with simple examples
 
Comment #131  (Posted by an unknown user on 08/10/2007)
Rating
Is there a Part 2 to this article?
 
Comment #132  (Posted by an unknown user on 10/03/2007)
Rating
Very well written and easy to understand
 
Comment #133  (Posted by an unknown user on 10/21/2007)
Rating
Its Really a Good One
 
Comment #134  (Posted by an unknown user on 12/03/2007)
Rating
Great for the intended audience
 
Comment #135  (Posted by an unknown user on 12/15/2007)
Rating
Thanks, great job!
 
Comment #136  (Posted by Dileep V on 01/11/2008)
Rating
Nice article, Now i am searching for next two parts,
From where i get next two parts.
 
Comment #137  (Posted by an unknown user on 02/22/2008)
Rating
The article has given an vivid vision on how the memory is being allocated with the reference to dotnet which would be very useful for any technical and non technical person.


 
Comment #138  (Posted by an unknown user on 07/30/2008)
Rating
g
 
Comment #139  (Posted by an unknown user on 12/06/2008)
Rating
daralroacel
 
Comment #140  (Posted by an unknown user on 05/28/2009)
Rating
Thanks For a Simple Clear Explanation of what is happening behind the seines
 
Comment #141  (Posted by an unknown user on 06/01/2009)
Rating
Sorry. I write because I'm afraid to say some things out loud.
I am from Sudan and also now am reading in English, give please true I wrote the following sentence: "Hayfever sufferers show a remarkable improvement.Anti allergy dust mite proof mattress covers to fit virtually all mattress sizes."

Thanks for the help :-), Wheeler.
 
Comment #142  (Posted by an unknown user on 11/03/2009)
Rating
Very good article.COncepts are explained very nicely.
 
Comment #143  (Posted by an unknown user on 12/23/2009)
Rating
really good!
 
Sponsored Links