classes and class libraries examples and hints
Skip this Video
Download Presentation
Classes and Class Libraries Examples and Hints

Loading in 2 Seconds...

play fullscreen
1 / 26

Classes and Class Libraries Examples and Hints - PowerPoint PPT Presentation

  • Uploaded on

Classes and Class Libraries Examples and Hints. November 9, 2010. Complex Number Class. A CLASSic example of a Class. Demonstrates a good use of ToString . Demonstrates operator overloading. Operator overloading. Allows you to define common operators for your custom classes.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Classes and Class Libraries Examples and Hints' - tieve

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
complex number class
Complex Number Class
  • A CLASSic example of a Class.
  • Demonstrates a good use of ToString.
  • Demonstrates operator overloading.
operator overloading
Operator overloading
  • Allows you to define common operators for your custom classes.
    • What does it mean for two objects of your class to be equal?
    • How do you add two objects? Multiply?
    • How do you convert an object of your class to another type?
class complex the basics
Class Complex: The Basics
  • I got this code from the Stevens book.
  • Note that Stevens cheats—he uses Public variables instead of properties for Re and Im.
  • Public variables work just like our standard Public properties, but they do not allow for
  • adding validation code.
  • If you anticipate ever adding on to your class, you should use Public properties with
  • with Private variables, like you did in assignment 3.
  • Complex numbers are generally written as

a + bi

where a is the real part and b the imaginary part.

  • The Complex class incorporates this format into its ToString function:
operator overloads
Operator Overloads
  • You can add operator functions to your classes, such as Equals, Plus, Minus, Times, etc.
  • However, VB allows you to define what the standard operator symbols (=, +, -, *, etc.) mean for your class.
  • This makes your code easier to read AND write.
  • Being able to test equality is frequently important.
  • In your custom classes, you can define what “=“ means.
  • Note that if you define “=“, you must also define “<>”.
  • Note also that “>” and “<“ are not defined, since they are not well defined for complex numbers.
  • All operator overloads must be declared Public Shared.
  • “Shared” means that the operator belongs to the class as a whole, not to individual objects.
  • The equals that is being overloaded here is the comparison equals, the one that comes after “If”, not the assignment equals.
  • Remember that for objects, the assignment equals works on references (addresses), not the objects themselves.
  • VB allows you to define conversions from your class by overloading CType.
  • The code below effectively defines CDbl for the Complex class as being the absolute value:
absolute value as readonly property
Absolute Value as ReadOnly Property
  • Personally, I would rather see absolute value implemented as a property, not a conversion.
  • The property is ReadOnly since it is not something that you could assign directly; it depends on the real and imaginary parts of the number.
  • For example, the complex numbers 1, i, -1, and –i all have the same absolute value.
building on the complex class
Building on the Complex class
  • Can you think of other properties, functions, operators, constructors, conversions, etc. that could be added to the Complex class?
  • Some classes that might be similar to Complex?
    • Vector
    • Matrix
    • Field (electric, gravitational)
wrapper classes
Wrapper Classes
  • VB’s .NET framework contains lots of wrapper classes.
  • A wrapper class encapsulates some difficult or tedious code which performs something useful into a simple interface.
  • For example, it would take a lot of code to write your own web browser into your program.
  • Fortunately, Microsoft has provided the WebBrowser control (in the ToolBox).
  • With the WebBrowser control (a class, of course), you get pretty much all of Internet Explorer’s functionality with just a few lines of code.
webbrowser control
WebBrowser Control
  • The VB Toolbox offers a WebBrowser control.
  • This is basically a customizable version of Internet Explorer that you can build into your programs.
  • Possible uses:
    • Display pictures from the web (as an alternative to the PictureBox control)
    • Display help files
    • Allow users of your program to link to specific web pages, while preventing access to other pages (or general browsing)
webbrowser demo
WebBrowser Demo
  • Open the “HTML Lecture” VB project.
  • Click on WebBrowser Demo.
  • This form will appear:
the webbrowser form
The WebBrowser Form
  • frmBrowser contains a SplitContainer control.
  • In the top half is a WebBrowser control.
  • In the bottom is a TextBox.
  • When the WebBrowser navigates to a new web page, the TextBox displays the HTML code for that page.
navigation code
Navigation Code
  • The WebBrowser control’s “AllowNavigation” property determines if the user can use the browser as a true web browser or not.
  • If set to False, they will not be able to connect to linked pages by clicking on hyperlinks.
  • Set AllowNavigation to False if you want to restrict the user to web pages related to your program.
getting the html source code
Getting the HTML source code
  • If you want to retrieve the source code (usually HTML or XML) from a web page, use the WebBrowser’sDocumentText property.
  • The above code demonstrates this.
  • The code is placed in the WebBrowser’s Navigated event; that is, it waits until the new page is completely loaded.
  • Once you have retrieved the DocumentText, you can search for keywords or values, such as a stock price or sports score, using the various String functions.
dbconn another wrapper class
DbConn: Another Wrapper Class
  • Most VB textbooks show you how to connect to a database and retrieve data, typically using code like this:
  • This code is tedious, difficult to understand or remember.
  • As written, it works only with Access 2007 databases (Microsoft.ACE.OLEDB.12.0).
  • The function encapsulates the code to some degree, but we can get greater functionality and flexibility by incorporating it into a class.
  • I did this about three years ago, both for my work at UMTRI and for this course.
dbconn public interface
DbConn: Public Interface
  • Public Sub New(ByValFileName As String)
  • Public Sub New(ByValServerName As String, ByValDatabaseName As String)
    • These two constructors identify the database to be connected to, and test the connection. If the database cannot be located or it can’t be open, the constructor raises an exception.
    • The first constructor (one parameter) is for Access databases;
    • The second (overloaded) constructor (two parameters) is for SQL Server databases.
opendatabaseconnection closedatabaseconnection
OpenDatabaseConnection, CloseDatabaseConnection
  • Public Sub OpenDatabaseConnection()
  • Public Sub CloseDatabaseConnection()
    • There are time and availability costs to opening a database and leaving it open.
    • In general, if you need to run a lot of queries in a row, you should open the connection once, run all the queries, and then close the connection.
    • I didn’t show you these subs for assignment 2, but you may want to use them if you find your data-connected program running slowly.
    • Both GetDataTable and ExecuteSQL leave the connection in the condition that they found it (which defaults to closed).
running the queries
Running the Queries
    • You know how to use the remaining parts of DbConn’s user interface:
  • Public Function GetDataTable(ByValsql As String) As DataTable
  • Public Sub ExecuteSQL(ByValsql As String)
connection encapsulated
Connection Encapsulated
  • Together, the public interface of DbConn encapsulates all of the complex code we saw earlier.
  • That interface is,again:
    • Public Sub New(ByValFileName As String)
    • Public Sub New(ByValServerName As String, ByValFileName As String)
    • Public Sub OpenDatabaseConnection()
    • Public Sub CloseDatabaseConnection()
    • Public Function GetDataTable(ByValsql As String) As DataTable
    • Public Sub ExecuteSQL(ByValsql As String)