Programming Microsoft Visual Basic 6
Chapter 6 Classes and Objects

From: http://www.visualbasicbooks.com/progVB6samplepg1.html
Since Microsoft Visual Basic 4 introduced the concept of class modules, a furious debate has raged among Visual Basic developers about the object-oriented nature of the language. Is Visual Basic a real object-oriented programming (OOP) language? Is it just an object-based language? Or is it somewhere between these two extremes?

For what it's worth, my position on the question is a compromise: Visual Basic definitively is not a true OOP language and it won't be one until it possesses some essential OOP features, such as inheritance. But this deficit shouldn not excuse your not learning in depth what classes and objects have to offer developers. This is what I will show in this chapter and in the remainder of this book:

Class modules can immensely improve your productivity, help you solve many common and intricate programming problems, and even permit you to perform tasks that would be extremely difficult, if not impossible, otherwise. Even if Visual Basic isn't a full-fledged object-oriented programming language, you can still use its classes to better organize your code into truly reusable modules and design your applications entirely using concepts derived from the Object-Oriented Design discipline. In this sense, the inclusion of a tool such as Visual Modeler in the Enterprise Edition is a clear sign of Microsofts will to pursue this goal.

Most important, objects are the base on which almost every feature of Visual Basic is implemented. For example, without objects you can't do serious database programming, you can't deliver Internet applications, and you can't write components for COM, DCOM, or MTS. In short, you can do little or nothing without a firm grasp on what objects are and how you can take advantage of them.

If you are absolutely new to object-oriented programming, this could be the most difficult chapter of the entire book for you to grasp. To understand how objects can help you write better programs in less time, you must be ready for a conceptual leap, not unlike the leap that many programmers had to take when switching from pure procedural MS-DOS languages such as QuickBasic to newer and more sophisticated event-driven programming environments such as Visual Basic. But once you grasp the basic concepts of OOP, you will probably agree that objects are the most exciting thing to happen to Visual Basic since its first version. When you dive into object-oriented programming, you will soon find yourself devising new, concise, and elegant solutions to old problems, often in less time and with less code. But I do not want to sound intimidating. As a Visual Basic programmer, you have already learned to master many advanced programming techniques concerned with, for example, events, database programming, and user interface issues. OOP is NOT more difficult, it's merely different. And it's certainly a lot of fun.

If you've ever read books or articles about OOP, you surely found dozens of different definitions for the term object. Most of the definitions are correct and confusing at the same time. The definition I like most is this one: An object is an entity that embeds both data and the code that deals with it. (把Data 以及與該些 data有關的函數封裝在一個程式單元內: ADT) (by tsaiwn@csie.nctu.edu.tw)
      * However, Visual Basic.Net is now a true object-oriented programming (OOP) language since it has all features of the Object Oriented Programming Language. (Encapsulation, Information Hiding, Inheritance, Polymorphism)