Week Classes 11. 2 Introduction Classes Abstract Data Types Objects, Properties, Methods.

Slides:



Advertisements
Similar presentations
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide STARTING OUT WITH Visual Basic 2008 FOURTH EDITION Tony Gaddis.
Advertisements

Classes, Exceptions, Collections, and Scrollable Controls
Copyright © 2014 Pearson Education, Inc. Chapter 12 Classes, Collections, and Inheritance.
Copyright © 2012 Pearson Education, Inc. Chapter 4 Inheritance and Polymorphism.
12-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
Road Map Introduction to object oriented programming. Classes
IS 1181 IS 118 Introduction to Development Tools VB Chapter 06.
Java Programming, 3e Concepts and Techniques Chapter 5 Arrays, Loops, and Layout Managers Using External Classes.
VBA Modules, Functions, Variables, and Constants
Chapter 6 OOP: Creating Object-Oriented Programs Programming In Visual Basic.NET.
Evan Korth New York University Computer Science I Classes and Objects Professor: Evan Korth New York University.
Creating Object Oriented Programs Object oriented (OO) terminology Class vs. object Instantiate an object in a project Understand Class_Initialize / Terminate.
VB Classes ISYS 573. Object-Oriented Concepts Abstraction: –To create a model of an object, for the purpose of determining the characteristics (properties)
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide
ASP.NET Programming with C# and SQL Server First Edition
Chapter 13: Object-Oriented Programming
VB Classes ISYS 512. Adding a Class to a Project Project/Add Class –*** MyClass is a VB keyword. Steps: –Adding properties Declare Public variables in.
CSI 101 Elements of Computing Spring 2009 Lecture # 14 – Classes and Objects Wednesday, April 15th, 2009 and Monday, April 20th, 2009.
Object Based Programming. Summary Slide  Instantiating An Object  Encapsulation  Inheritance  Polymorphism –Overriding Methods –Overloading vs. Overriding.
1 Using Classes Object-Oriented Programming Using C++ Second Edition 5.
CSM-Java Programming-I Spring,2005 Introduction to Objects and Classes Lesson - 1.
Chapter 8 More Object Concepts
110-I 1 Object Terminology Review Object - like a noun, a thing –Buttons, Text Boxes, Labels Properties - like an adjective, characteristics of object.
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 11 1 Microsoft Office Access 2003 Tutorial 11 – Using and Writing Visual Basic for Applications.
Introduction to Object Oriented Programming. Object Oriented Programming Technique used to develop programs revolving around the real world entities In.
Chapter 6 Understanding the Structure of an Application: Procedures, Modules, and Classes.
Microsoft Visual Basic 2008 CHAPTER ELEVEN Multiple Classes and Inheritance.
Chapter 9: Getting Comfortable with Object- Oriented Programming.
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Method Overriding Remember inheritance: when a child class inherits methods, variables, etc from a parent class. Example: public class Dictionary extends.
Chapter 6 OOP: Creating Object-Oriented Programs Programming in C#.NET © 2003 by The McGraw-Hill Companies, Inc. All rights reserved.
Chapter Eleven Classes and Objects Programming with Microsoft Visual Basic th Edition.
Applications Development
CSCI 3327 Visual Basic Chapter 3: Classes and Objects UTPA – Fall 2011.
Chapter 6 OOP: Creating Object-Oriented Programs Programming In Visual Basic.NET.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Microsoft Visual Basic 2008 CHAPTER ELEVEN Multiple Classes and Inheritance.
Programming with Microsoft Visual Basic 2012 Chapter 11: Classes and Objects.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
VB Classes ISYS 512/812. Object-Oriented Concepts Abstraction: –To create a model of an object, for the purpose of determining the characteristics (properties)
Chapter 12 Classes, Collections and Scrollable Controls Topics Classes Abstract Data Types Objects, Properties, Methods Exceptions Collections Object Browser.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 26 - Java Object-Based Programming Outline 26.1Introduction.
Introduction to Java Chapter 7 - Classes & Object-oriented Programming1 Chapter 7 Classes and Object-Oriented Programming.
Microsoft Visual Basic 2012 CHAPTER ELEVEN Multiple Classes and Inheritance.
Visual Basic for Application - Microsoft Access 2003 Programming applications using Objects.
Chapter 5 Introduction to Defining Classes
Object-Oriented Programming. Objectives Distinguish between object-oriented and procedure-oriented design. Define the terms class and object. Distinguish.
Tutorial 81 Field, Record, Data File Field - a single item of information about a person, place, or thing Record - a group of related fields that contain.
72 4/11/98 CSE 143 Abstract Data Types [Sections , ]
Object-Oriented Programming: Inheritance and Polymorphism.
Creating New Forms Projects can appear more professional when using different windows for different types of information. Select Add Windows Form from.
Object-Oriented Programming: Classes and Objects Chapter 1 1.
Addison Wesley is an imprint of © 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Chapter 12 Classes, Collections, and.
Defining Data Types in C++ Part 2: classes. Quick review of OOP Object: combination of: –data structures (describe object attributes) –functions (describe.
Object-Oriented Programming: Classes and Objects.
Chapter 5 Introduction to Defining Classes Fundamentals of Java.
These materials where developed by Martin Schray
Chapter 12, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 12 An Introduction to Classes, Objects, and object-oriented development.
IS 350 Application Structure
Object-Oriented Programming: Classes and Objects
Microsoft Visual Basic 2005: Reloaded Second Edition
Road Map Introduction to object oriented programming. Classes
Object-Oriented Programming: Classes and Objects
Chapter 11 – Object-Oriented Programming
Classes, Collections, and Inheritance
Object-Oriented Programming: Classes and Objects
Tonga Institute of Higher Education
Object-Oriented Programming: Inheritance and Polymorphism
CIS16 Application Development and Programming using Visual Basic.net
Presentation transcript:

Week Classes 11

2 Introduction Classes Abstract Data Types Objects, Properties, Methods

Classes and Objects Classes Are Program Structures That Define Abstract Data Types and Are Used to Create Objects

4 Abstract Data Types An abstract data type (ADT) is a data type created by a programmer ADTs are important in computer science and object-oriented programming An abstraction is a model of something that includes only its general characteristics Dog is an abstraction Defines a general type of animal but not a specific breed, color, or size A dog is like a data type A specific dog is an instance of the data type

5 Classes A class is a program structure that defines an abstract data type Must create the class first Then can create instances of the class Class instances share common attributes VB forms and controls are classes Each control in the toolbox represents a class Placing a button on a form creates an instance, or object, of the class

6 Class Properties, Methods, & Events Programs communicate with an object using the properties and methods of the class Class properties example: Buttons have Location, Text, and Name properties Class methods example: The Focus method functions identically for every single button Class event procedures: Each button in a form has a different click event procedure

7 Object Oriented Design The challenge is to design classes that effectively cooperate and communicate Analyze application requirements to determine ADTs that best implement the specifications Classes are fundamental building blocks Typically represent nouns of some type A well-designed class may outlive the application Other uses for the class may be found

8 Object Oriented Design Example Specifications: We need to keep a list of students that lets us track the courses they have completed. Each student has a transcript that contains all information about his or her completed courses. At the end of each semester, we will calculate the grade point average of each student. At times, users will search for a particular course taken by a student. Nouns from the specification above typically become classes in the program design Verbs such as calculate GPA and search become methods of those classes

9 OOD Class Characteristics ClassAttributes (properties)Operations (methods) StudentLastName, FirstName, Display, Input IdNumber StudentListAllStudents, CountAdd, Remove, FindStudent CourseSemester, Name, Display, Input Grade,Credits TranscriptCourseList, CountDisplay, Search, CalcGradeAvg

10 Interface and Implementation Class interface is the portion of the class visible to the application programmer Made available by creating properties, methods, and events that are public Class implementation is the portion of the class hidden from client programs Kept hidden by designating member variables, properties, & methods as private Hiding of data and procedures inside a class is referred to as encapsulation

Creating a Class To Create a Class in Visual Basic, You Create a Class Declaration The Class Declaration Specifies the Member Variables, Properties, Methods, and Events That Belong to the Class

12 Class Declaration Student is the name of the class Examples of MemberDeclarations are presented in the following slides To create a new class: Click Add New Item button on toolbar Select Class from Add New Item dialog box Provide a name for the class and click Add Adds a new, empty class file (.vb) to project Public Class Student MemberDeclarations End Class

13 Member Variables A variable declared inside a class declaration Syntax: AccessSpecifier may be Public or Private Example: AccessSpecifer VariableName As DataType Public Class Student Public strLastName As String ‘Holds last name Public strFirstName As String ‘Holds first name Public strId As String ‘Holds ID number End Class

14 Creating an Instance of a Class A two step process creates an instance of a class Declare a variable whose type is the class Create instance of the class with New keyword and assign the instance to the variable freshman defined here as an object variable Can accomplish both steps in one statement Dim freshman As New Student freshman = New Student Dim freshman As Student

15 Accessing Members Can work with Public member variables of a class object in code using this syntax: For example: If freshman references a Student class object And Student class has public member variables strFirstName, strLastName, and strID Can store values in member variables with freshman.strFirstName = "Joy" freshman.strLastName = "Robinson" freshman.strId = "23G794" objectVariable.memberVariable

16 Property Procedure A property procedure is a function that defines a property Controls access to property values Procedure has two sections: Get and Set Get code executes when value is retrieved Set code executes when value is stored Properties almost always declared Public to allow access from outside the class

17 Property Procedure Syntax Public Property PropertyName() As DataType Get Statements End Get Set(ParameterDeclaration) Statements End Set End Property

18 Property Procedure Example Public Class Student ' Member variables Private sngTestAvg As Single Public Property TestAverage() As Single Get Return sngTestAvg End Get Set(ByVal value As Single) If value >= 0.0 And value <= Then sngTestAvg = value Else MessageBox.Show( _ "Invalid test average.", "Error") End If End Set End Property End Class

19 Setting and Validating a Property TestAverage property is set as shown: Passes 82.3 into value parameter of Set If in the range 0.0 to 100.0, value is stored If outside the range, message box displayed instead of value being stored Set(ByVal value As Single) If value >= 0.0 And value <= Then sngTestAvg = value Else MessageBox.Show( _ "Invalid test average.", "Error") End If End Set Dim freshman as New Student() freshman.TestAverage = 82.3

20 Read-Only Properties Useful at times to make a property read-only Allows access to property values but cannot change these values from outside the class Add ReadOnly keyword after access specifier This causes the propertyName to be read-only -- not settable from outside of the class Public ReadOnly Property PropertyName() As DataType Get Statements End Get End Property

21 Read-Only Property Example ' TestGrade property procedure ReadOnly Property TestGrade() As Char Get If sngTestAverage >= 90 return "A“ Else If sngTestAverage >= 80 return "B“ Else If sngTestAverage >= 70 return "C“ Else If sngTestAverage >= 60 return "D“ Else return "F“ End If End Get End Property

22 Object Removal & Garbage Collection Memory space is consumed when objects are instantiated Objects no longer needed should be removed Set object variable to Nothing so it no longer references the object Object is a candidate for garbage collection when it is no longer referenced by any object variable The garbage collector monitors for and automatically destroys objects no longer needed freshman = Nothing

23 Going Out of Scope An object variable instantiated within a procedure is local to that procedure An object goes out of scope when Referenced only by local variables and The procedure ends Object removed once it goes out of scope An object instantiated in a procedure and assigned to a global variable is not removed Reference remains when procedure ends

24 Going Out of Scope, Example Sub CreateStudent() Dim sophomore As Student sophomore = New Student() sophomore.FirstName = "Travis" sophomore.LastName = "Barnes" sophomore.IdNumber = "17H495" sophomore.TestAverage = 94.7 g_studentVar = sophomore End Sub With this statement, sophomore will not go out of scope. Without this statement, it will go out of scope when the procedure ends. (g_studentVar is a module-level variable.)

25 Comparing Object Variables Multiple variables can reference the same object Can test if two variables refer to same object Must use the Is operator The = operator cannot be used to test for this Dim collegeStudent As Student Dim transferStudent As Student collegeStudent = New Student() transferStudent = collegeStudent If collegeStudent Is transferStudent Then ' Perform some action End If

26 IsNot & Nothing Object Comparisons Use the IsNot operator to determine that two variables do not reference the same object Use the special value Nothing to determine if a variable has no object reference If collegeStudent IsNot transferStudent Then ' Perform some action End If If collegeStudent Is Nothing Then ' Perform some action End If

27 Can use object variables as arguments to a procedure or function Example: student object s as an argument Pass object variable with the procedure call Objects As Procedure Arguments Sub DisplayStudentGrade(ByVal s As Student) ' Displays a student’s grade. MessageBox.Show("The grade for " & _ s.FirstName & " " & s.LastName & _ " is " & s.TestGrade.ToString) End Sub DisplayStudentGrade(freshman)

28 Functions Can Return Objects Dim freshman As Student = GetStudent() … Function GetStudent() As Student Dim s As New Student() s.FirstName = InputBox("Enter first name.") s.LastName = InputBox("Enter last name.") s.IdNumber = InputBox("Enter ID number.") s.TestAvg = CSng(InputBox("Enter test average.")) Return s End Function Example below instantiates a student object Prompts for and sets its property values Then returns the instantiated object

29 Class Methods In addition to properties, a class may also contain Sub procedures and functions Methods are Sub procedures and functions defined in a class Typically operate on data stored in the class The following slide shows a Clear method for the Student class Method called with freshman.Clear() Method clears member data in the Student class object referenced by freshman

30 Clear Method for Student Class Public Class Student ' Member variables Private strLastName As String 'Holds last name Private strFirstName As String 'Holds first name Private strId As String 'Holds ID number Private sngTestAvg As Single 'Holds test avg (...Property procedures omitted...) ' Clear method Public Sub Clear() strFirstName = String.Empty strLastName = String.Empty strId = String.Empty sngTestAvg = 0.0 End Sub End Class

31 Constructors A constructor is a method called automatically when an instance of the class is created Think of constructors as initialization routines Useful for initializing member variables or performing other startup operations To create a constructor, simply create a Sub procedure named New within the class Next slide shows a Student class constructor The statement freshman = New Student() Creates an instance of the Student class Executes constructor to initialize properties of the Student object referenced by freshman

32 Constructor Example Public Class Student ' Member variables Private strLastName As String 'Holds last name Private strFirstName As String 'Holds first name Private strId As String 'Holds ID number Private sngTestAvg As Single 'Holds test avg ' Constructor Public Sub New() strFirstName = "(unknown)" strLastName = "(unknown)" strId = "(unknown)" sngTestAvg = 0.0 End Sub (The rest of this class is omitted.) End Class

33 Why Inheritance? Inheritance allows new classes to derive their characteristics from existing classes The Student class may have several types of students such as GraduateStudent ExchangeStudent StudentEmployee These can become new classes and share all the characteristics of the Student class Each new class would then add specialized characteristics that differentiate them

34 Base and Derived Classes The Base Class is a general-purpose class that other classes may be based on A Derived Class is based on the base class and inherits characteristics from it Can think of the base class as a parent and the derived class as a child

35 The Vehicle Class (Base Class) Consider a Vehicle class with the following: Private variable for number of passengers Private variable for miles per gallon Public property for number of passengers (Passengers) Public property for miles per gallon (MilesPerGallon) This class holds general data about a vehicle Can create more specialized classes from the Vehicle class

36 The Truck Class (Derived Class) Declared as: Truck class derived from Vehicle class Inherits all non-private methods, properties, and variables of Vehicle class Truck class defines two properties of its own MaxCargoWeight – holds top cargo weight FourWheelDrive – indicates if truck is 4WD Public Class Truck Inherits Vehicle ' Other new properties ' Additional methods End Class

37 Instantiating the Truck Class Instantiated as: Values stored in MaxCargoWeight and FourWheelDrive properties Properties declared explicitly by Truck class Values also stored in MilesPerGallon and Passengers properties Properties inherited from Vehicle class Dim pickUp as New Truck() pickUp.Passengers = 2 pickUp.MilesPerGallon = 18 pickUp.MaxCargoWeight = 2000 Pickup.FourWheelDrive = True

38 Overriding Properties and Methods Sometimes a base class property procedure or method must work differently for a derived class Can override base class method or property Must write the method or property as desired in the derived class using same name When an object of the derived class accesses the property or calls the method VB uses overridden version in derived class Version in base class is not used

39 Property Override Example Vehicle class has no restriction on number of passengers But may wish to restrict the Truck class to two passengers at most Can override Vehicle class Passengers property by: Coding Passengers property in derived class Specify Overridable in base class property Specify Overrides in derived class property

40 Overridable Base Class Property Public Overridable Property Passengers() As Integer Get Return intPassengers End Get Set(ByVal value As Integer) intPassengers = value End Set End Property Overridable keyword added to base class property procedure

41 Overridden Derived Class Property Public Overrides Property Passengers() As Integer Get Return MyBase.Passengers End Get Set(ByVal value As Integer) If value >= 1 And value <= 2 Then MyBase.Passengers = value Else MessageBox.Show("Passengers must be 1 or 2", _ "Error") End If End Set End Property Overrides keyword and new logic added to derived class property procedure

Overriding a method is similar to a property Specify Overridable and Overrides keywords An overridable base class method An overriding derived class method 42 Overriding Methods Public Overridable Sub ProcedureName() Public Overridable Function ProcedureName() As DataType Public Overrides Sub ProcedureName() Public Overrides Function ProcedureName() As DataType