Implementing Object-oriented Programming in Visual Basic .NET Objectives In this lesson, you will learn to: ☛ Identify the advantages of using classes and objects ☛ Identify the use of structures ☛ Identify the use of abstract classes in Visual Basic .NET ☛ Identify the use of interfaces ☛ Identify the differences between interfaces and abstract classes ☛ Identify the use of assemblies ☛ Identify the application hierarchy in Visual Basic .NET ☛ Create and instantiate a class ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 1 of 48
Implementing Object-oriented Programming in Visual Basic .NET Objectives (Contd.) ☛Declare and import namespaces ☛Create an inherited form in Visual Basic .NET
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 2 of 48
Implementing Object-oriented Programming in Visual Basic .NET Object-orientation in Visual Basic .NET ☛ Visual Basic .NET: ✓ Supports the four pillars of object-oriented programming: ➤ Encapsulation ➤ Abstraction ➤ Inheritance ➤ Polymorphism
✓ Uses predefined classes provided by the .NET Framework. ✓ Allows you to create your own classes. ✓ Supports structures that enable you to create your own data type Data Adapter. ✓ Also has full support for interfaces.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 3 of 48
Implementing Object-oriented Programming in Visual Basic .NET Classes and Objects ☛Class ✓ Is a conceptual representation of all the entities that share common attributes and behaviors. ✓ Defines the attributes and behaviors of all the instances of the class. ☛Object ✓ Is an instance of a class. ✓ Has individual copy of the common attributes and share a common set of behaviors.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 4 of 48
Implementing Object-oriented Programming in Visual Basic .NET Advantages of Using Classes and Objects ☛ Maintenance of code by introducing modularity. ☛ Encapsulation of internal complexities in code from end-users. ☛ Reuse of code across applications. ☛ Support for a single interface to implement multiple methods.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 5 of 48
Implementing Object-oriented Programming in Visual Basic .NET Structure ☛ Is a generalization of a user-defined data type (UDT). ☛ Is created when you want a single variable to hold multiple types of related data. ☛ Is declared by using the Structure and End Structure statements. ☛ Can also include procedures as its members. ☛ Supports event handling.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 6 of 48
Implementing Object-oriented Programming in Visual Basic .NET Structure (Contd.) ☛ You can specify the accessibility of the data members within a structure by using one of the following access modifiers: ✓ Public ✓ Protected ✓ Friend ✓ Protected Friend ✓ Private
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 7 of 48
Implementing Object-oriented Programming in Visual Basic .NET Structure (Contd.) ☛Storing and accessing data within/from a structure: ✓ Is done by using the .(dot) notation. Example Dim ord1 As order_details ord1.Inv_no = "I0001“ ord1.Ord_dt = #5/31/2001# If ord1.Inv_no = "" Then MsgBox("Please enter the Invoice number") End If
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 8 of 48
Implementing Object-oriented Programming in Visual Basic .NET Classes Vs. Structure ☛A few similarities between a class and a structure are: ✓ Both can have members, including constructors, properties, constants, and events. ✓ Both can implement interfaces. ✓ Both can have shared constructors, with or without parameters.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 9 of 48
Implementing Object-oriented Programming in Visual Basic .NET Classes Vs. Structure (Contd.) ☛A few dissimilarities between a class and a structure are given in the following table: Class
Structure
A class is inheritable from other existing classes.
A structure is not inheritable.
A class can have instance constructors with or without parameters.
A structure can have instance constructors only if they take parameters.
A class is a reference type.
A structure is a value type.
The members of a class can be initialized within the class declaration.
The members of a structure cannot be initialized within the structure declaration.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 10 of 48
Implementing Object-oriented Programming in Visual Basic .NET Abstract Class ☛Contains the skeleton of the methods that derived classes can implement. Example Public MustInherit Class EmployeeDetails Public MustOverride Sub Annual_Salary(ByVal m As Integer) End Class Public Class Emp_details Inherits EmployeeDetails Public Overrides Sub Annual_Salary(ByVal m As Integer) ' Write the implementation code here End Sub ©NIIT
End Class Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 11 of 48
Implementing Object-oriented Programming in Visual Basic .NET Abstract Class (Contd.) ☛ You can create an abstract class by using the MustInherit keyword in the class definition. ☛ You can define a method in an abstract class using the MustOverride keyword. ☛ You must implement the method in derived classes using the Overrides keyword. ☛ If a derived class of an abstract class does not implement one of the abstract methods of the abstract base class, it also must be declared with MustInherit keyword as it also becomes an abstract class.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 12 of 48
Implementing Object-oriented Programming in Visual Basic .NET Interface ☛Can contain only the declaration of members such as properties, methods, and events. ☛Enables you to separate the definition of objects from their implementation so that the objects can evolve without the risk of introducing incompatibility in existing applications. ☛Is declared by using the Interface and End Interface statements. Example Interface Iorderdetails Property CustName() As String Sub UpdateCustStatus() Event Update_Complete() End Interface ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 13 of 48
Implementing Object-oriented Programming in Visual Basic .NET Interface (Contd.) ☛Statements are Public by default. ☛Can inherit members from an existing interface by using the Inherits statement. Example Interface Validate_Cust Sub Validate_Custname() End Interface Interface Iorderdetails Inherits Validate_Cust Property CustName() As String Sub UpdateCustStatus() Event Update_Complete() End Interface ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 14 of 48
Implementing Object-oriented Programming in Visual Basic .NET Differences Between Interfaces and Abstract Classes ☛Interfaces represent the highest level of abstraction in object-oriented programming because all the methods in an interface do not have any implementation. ☛In contrast, the abstract classes that are created by using the MustInherit keyword might contain a method that has a body.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 15 of 48
Implementing Object-oriented Programming in Visual Basic .NET Assemblies ☛ Consist of a single or multiple executable and resource files that contain information necessary for deploying and maintaining the versions of an application. ☛ Enable users to use an application even when the application is not registered in the System Registry, since: ✓ Every assembly is self-describing through metadata. ✓ Every reference to a type is scoped by an assembly reference. ✓ .NET can automatically locate referenced assemblies.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 16 of 48
Implementing Object-oriented Programming in Visual Basic .NET Assemblies (Contd.) ☛ The application hierarchy in Visual Basic .NET is illustrated in the following figure:
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 17 of 48
Implementing Object-oriented Programming in Visual Basic .NET Assemblies (Contd.) ☛ Consist of manifest, module, and type. ☛ Manifest is the descriptor of the assembly. It contains information on: ✓ The name and version number of the assembly. ✓ Its interaction with other assemblies. ✓ The types exposed by the assembly. ✓ Security permissions required by the assembly.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 18 of 48
Implementing Object-oriented Programming in Visual Basic .NET Assemblies (Contd.) ☛ Module is either a DLL or EXE. It contains: ✓ Compiled code in intermediate languages. ✓ Metadata associated with the module. ✓ Optionally, the manifest for the assembly. ☛ Type in Visual Basic .NET can be a class or a structure that contain data and logic affecting the data.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 19 of 48
Implementing Object-oriented Programming in Visual Basic .NET Just a Minute… 2. Why is a structure called a composite data type? 3. Identify the syntactical error in the following declaration of an interface: Interface Iproductdetails Property ProductName() As String Sub UpdateCustStatus() Label1.Text=“This is a Sub Procedure to check the status of the product” End Sub Event Update_complete() End Interface
3. How are interfaces different from abstract classes?
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 20 of 48
Implementing Object-oriented Programming in Visual Basic .NET Problem Statement 3.D.1 The call centers at Diaz Telecommunications need to maintain customer information to respond to customer queries. The details of the customers need to be accepted through a graphical interface. The customer information also needs to be stored in the relevant memory variables. The details of the customers essentially include customer id, customer’s first name, customer’s last name, address, telephone number, and customer’s e-mail id.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 21 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task List ☛Identify the data that needs to be captured. ☛Identify the type of user interface to be used. ☛Identify the user interface components to accept data. ☛Identify the mechanism to store data in the relevant memory variables. ☛Identify the memory variables to store customer information. ☛Perform appropriate steps to create the user interface screen, as designed. ☛Add a class to the project. ☛Write the code to add the relevant members to a class. ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 22 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task List (Contd.) ☛Write the code to instantiate the class. ☛Write the code to store and retrieve data from the class. ☛Save the application. ☛Run the application.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 23 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 1: Identify the data that needs to be captured. Result: ☛As per the problem statement, the data that needs to be captured is: ✓ Customer ID ✓ First Name ✓ Last Name ✓ Address ✓ Telephone number ✓ E-mail ID
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 24 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 2: Identify the type of user interface to be used. ☛There are three types of user interfaces: ✓ Windows Forms ✓ Web Forms ✓ Console Result: ☛Since the requirement stated in the problem statement is for a graphical user interface, you will use Windows Forms as the user interface.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 25 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 3: Identify the user interface components to accept data. ☛Guidelines for designing a user interface: ✓ Identify the name and title of the form. ✓ Identify the controls required. ✓ Recommend suitable prefixes that you can use for various controls: Object
©NIIT
Prefix
Example
Form
frm
Label
lbl
frmCustomerdetail s lblCustomerName
TextBox
txt
txtCustomerName
Button
cmd
cmdSave
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 26 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 3: Identify the user interface components to accept data. (Contd.) Result: ☛Based on the guidelines, set the form name as frmCustomerdetails and the text, which is the title of the form, as Customer Details. ☛To make a user-friendly interface, add label controls to display static text for the customer details: Customer ID, First Name, Last Name, Address, Telephone number, and Email ID. Next, add text box controls to accept information for each customer detail. In addition, add two buttons to save and retrieve the data stored for the customer.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 27 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 4: Identify the mechanism to store data in relevant memory variables. ☛In Visual Basic .NET, you can store data in relevant memory variables by implementing the object‑oriented features. The object-oriented features enable you to create a class that has member variables to store data during data processing. Result: ☛Since the requirement stated in the problem statement is to store customer information in the relevant memory variables, a class called Customer needs to be created that will have member variables to store customer information. ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 28 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 5: Identify the memory variables to store customer information. Result: ☛Since the customer information is to be stored in the member variables of the Customer class, you need to add variables to the Customer class. Each member variable of the Customer class should store a particular type of customer detail. You must ensure that the data type of a member variable matches the data type of the customer detail stored by the variables. Six member variables need to be declared in the Customer class.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 29 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 6: Perform appropriate steps to create the user interface screen, as designed. Task 7: Add a class to the project. ☛Namespace ✓ Is a naming scheme that helps you organize the classes available in an application so that they can be easily found. ✓ Enables you to avoid name collisions. ✓ Is created using the Namespace keyword. ✓ Every project in Visual Basic .NET has a root namespace, which is set in the Property page of the project. ✓ You can use namespaces explicitly through direct addressing or implicitly through the Imports statement. ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 30 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 8: Write the code to add the relevant members to a class. Task 9: Write the code to instantiate the class. ☛Object Lifetime ✓ The life of an object begins when an instance of a class is created using the New keyword. ✓ The life of an object ends after it goes out of scope or is set to Nothing and is released by the .NET Framework. ☛Constructors ✓ Are of two types, shared constructors and instance constructors. ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 31 of 48
Implementing Object-oriented Programming in Visual Basic .NET Shared Constructors ☛ Used to initialize the variables that are declared with the Shared keyword. ☛ Have an implicit Public access. ☛ Will not run more than once during a single execution of a program. Example Public Class class1 Shared x As Integer Shared Sub New() x = 10 End Sub End Class ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 32 of 48
Implementing Object-oriented Programming in Visual Basic .NET Instance Constructors ☛ Used to initialize variables that are declared with Dim, Public, Private, Friend, Protected, and Protected Friend keywords. ☛ Allow access to shared variables. Example Public Class class1 Dim x As Integer Public Sub New() x = 10 End Sub End Class ©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 33 of 48
Implementing Object-oriented Programming in Visual Basic .NET Destructors ☛ Are special methods that are used to release an instance of a class from memory. There are two types of destructors in Visual Basic .NET: ✓ Finalize( ) ✓ Dispose( )
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 34 of 48
Implementing Object-oriented Programming in Visual Basic .NET Finalize ( ) Destructor ☛ Is called from the class to which it belongs or from the derived classes. ☛ Is called after the last reference to an object is released from the memory. ☛ Is automatically invoked by the .NET Framework to destroy objects in the memory.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 35 of 48
Implementing Object-oriented Programming in Visual Basic .NET Dispose ( ) Destructor ☛ Is called to release a resource, such as a database connection, as soon as the object using such a resource is no longer in use. ☛ Is not called automatically, and you must explicitly call it from a client application.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 36 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 10: Write the code to store and retrieve data from the class. Task 11: Save the application. Task 12: Run the application.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 37 of 48
Implementing Object-oriented Programming in Visual Basic .NET Problem Statement 3.D.2 The call centers at Diaz Telecommunications need data entry forms to store information in the Customers, Orders, Query Handling, Products, and Employees databases. Every data entry form should have a similar user interface with the Reset and Exit buttons. Incorporate the interface for the Order details form.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 38 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task List ☛ Identify the mechanism to provide a similar user interface. ☛ Identify the user interface components to accept data. ☛ Identify the additional user interface controls. ☛ Create the user interface screen, as designed. ☛ Add code for the controls. ☛ Perform the prerequisite task to implement the planned mechanism. ☛ Implement the mechanism, as planned.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 39 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task List (Contd.) ☛Add the additional user interface control, as planned. ☛Perform the tasks to display a similar user interface. ☛Add code for the inherited controls. ☛Save the application. ☛Run the application.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 40 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 1: Identify the mechanism to provide a similar user interface. ☛In Visual Basic .NET, you can create a base form in a project and then create a form that inherits from the base form. Result: ☛Since the requirement stated in the problem statement is to create a similar user interface for all the data entry forms, you can create a base form that has the Reset and Exit buttons on it. You can then inherit all the data entry forms from the base form.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 41 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 2: Identify the user interface components to accept data. Result: ☛Since all the data entry forms must have the Reset and Exit buttons, you need to design the user interface of the base form with these two buttons. You also need to specify the Text and Name properties of the form and the buttons on the form.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 42 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 3: Identify the additional user interface controls. Result: ☛Since the data entry forms for the Customers, Orders, Query Handling, Products, and Employees databases must have various controls to accept data from a user, you need to identify additional controls that need to be included in the derived forms. In the current scenario, you will only create a base form with two buttons and inherit the form Order_details.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 43 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 4: Create the user interface screen, as designed. Task 5: Add code for the controls. Task 6: Perform the prerequisite task to implement the planned mechanism. Task 7: Implement the mechanism, as planned. Task 8: Add the additional user interface control, as planned.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 44 of 48
Implementing Object-oriented Programming in Visual Basic .NET Task 9: Perform the tasks to display a similar user interface. Task 10: Add code for the inherited controls. Task 11: Save the application. Task 12: Run the application.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 45 of 48
Implementing Object-oriented Programming in Visual Basic .NET Problem Statement 3.P.1 The call centers of Diaz Telecommunications need to have data entry forms to store information in the Customers, Orders, Query Handling, Product, and Employees databases. Every data entry form should have a similar user interface with the Add, Modify, Delete, Reset and Exit buttons. Incorporate the interface for the Query Handling data entry form.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 46 of 48
Implementing Object-oriented Programming in Visual Basic .NET Summary In this lesson, you learned that: ☛ Visual Basic .NET is an object-oriented programming language. ☛ A structure is used to create user-defined data types. ☛ Data can be stored in and retrieved from a structure. ☛ Abstract classes are used to define the skeleton of the methods that the derived class can implement. ☛ Interfaces are inheritable in Visual Basic .NET. ☛ Classes can be added to a Visual Basic .NET project.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 47 of 48
Implementing Object-oriented Programming in Visual Basic .NET Summary (Contd.) ☛An assembly contains information necessary for deploying and maintaining the versions of an application. ☛An assembly consists of manifest, module, and type. ☛An important advantage of using a namespace is the prevention of a name collision. ☛Classes can be inherited in a Visual Basic .NET project.
©NIIT
Implementing Object-oriented Programming in VB .NET/Lesson 3/Slide 48 of 48