Home > Articles > Programming > Windows Programming

VB.NET: Object-Oriented Programming Concepts

  • Print
  • + Share This
In this sample chapter, Keith Franklin discusses the four key concepts of object-oriented development in relation to programming: abstraction, encapsulation, polymorphism, and inheritance.
This sample chapter is excerpted from VB .NET for Developers, by Keith Franklin.
This chapter is from the book

This chapter is from the book

In its lifetime, VB has varied from an object-based development tool to an object-oriented development tool, but previous versions of Visual Basic had still been missing a few key features.

Using previous versions of VB, programmers have been able to create classes and use those classes in building applications. But VB was missing key object-oriented development features. This hasn't stopped developers from building robust component-based systems, but it has hampered them in building extensible frameworks.

This isn't the case with Visual Basic.NET. In fact, object-oriented programming is required in the .Net Framework, and VB has become a full-featured, object-oriented development language.

New to the language is support for inheritance, new methods of exposing objects, and support for attribute-based programming. Visual Basic.NET also has improved support for interfaces, properties, and events.

Object-oriented programming is very important when building complex applications. When using past versions of VB, many choose not to explore the use of object-oriented programming techniques. This is a mistake that cannot be repeated in VB.NET. To effectively use VB.NET, a developer must understand and apply object-oriented concepts.

Object-oriented development has four key concepts in relation to programming: abstraction, encapsulation, polymorphism, and inheritance. We'll discuss each of these in this chapter.

Abstraction in Visual Basic.NET

Abstraction is the ability to generalize an object as a data type that has a specific set of characteristics and is able to perform a set of actions. For example, you can create an abstraction of a dog with characteristics, such as color, height, and weight, and actions such as run and bite. The characteristics are called properties, and the actions are called methods.

Object-oriented languages provide abstraction via classes. Classes define the properties and methods of an object type, but it is important to remember that a developer cannot use a class directly; instead, an object must be created from a class—it must be instantiated.

VB has supported classes since version 4.0. Up until VB.NET, each class was implemented as a separate file that abstracted an object.

Listing 3.1 shows an instance of a VB6 class, and shows a Visual Basic.NET class. VB.NET changes the way you define your classes. First, in VB 6 a class was defined as a file with a .CLS extension: in VB.NET this is done in code. In the example in Listing 3.2, notice the Public Class Car and the End Class statements.

Listing 3.1 VB6 Class

Public MaximumSpeed as Integer
Public ModelName as String
Public Sub Accelerate()
  'Some code to make the car go
End Sub
Public Sub Stop()
    'Some code to make the car stop
End Sub

Listing 3.2 VB.NET Class

Public Class Car
  Public MaximumSpeed as Integer
  Public ModelName as String
  Public Sub Accelerate()
    'Some code to make the car go
  End Sub
  Public Sub Stop()
    'Some code to make the car stop
  End Sub
End Class

These listings show an abstraction of a very simple car. To use this abstraction, an instance of the class must be created. There were multiple ways to create an instance of a class in VB 6. Things have changed in VB.NET. Using New is now the preferred method of creating an object. Listing 3.3 shows three methods for creating an instance in VB 6 and Listing 3.4 shows four methods for doing so in VB.NET.

Listing 3.3 Three Methods to Create a Class Instance in VB 6

Dim oCar as New Car
Set oCar = New Car
Set oCar = CreateObject("Vehicles.Car")

You will notice that in Listing 3.4 I didn't include CreateObject. CreateObject has been denigrated to only create classic COM components and won't create an instance of a .NET component. The replacement for CreateObject is the System.Activator. CreateInstance method. (The Assembly.CreateInstance method maps to the System.Activator.CreateInstance method.)

Listing 3.4 Four Methods to Create a Class Instance in VB.NET

Dim oCar as New Car
oCar = New Car
oCar = Assembly.CreateInstance("Car")
oCar = System.Activator.CreateInstance("Car","URIToAssembly") 
  • + Share This
  • 🔖 Save To Your Account