ObjectOriented Programming Classes and Objects Multitier Applications Classes

  • Slides: 25
Download presentation
Object-Oriented Programming: Classes and Objects

Object-Oriented Programming: Classes and Objects

Multitier Applications • Classes are used to create multitier applications. • Each of the

Multitier Applications • Classes are used to create multitier applications. • Each of the functions of a multitier application can be coded in a separate component and stored and run on different machines. • Goal is to create components that can be combined and replaced.

Three-tier Model Most popular implementation

Three-tier Model Most popular implementation

"Cookie Analogy" Class = Cookie cutter Instantiate = Making a cookie using the cookie

"Cookie Analogy" Class = Cookie cutter Instantiate = Making a cookie using the cookie cutter Instance = Newly made cookie Properties of the Instance may have different values. ◦ Icing property can be True or False. ◦ Flavor property could be Lemon or Chocolate Methods = Eat, Bake, or Crumble Events = Cookie crumbling and informing you

Object-Oriented Terminology • Encapsulation • Inheritance • Polymorphism

Object-Oriented Terminology • Encapsulation • Inheritance • Polymorphism

Encapsulation Combination of characteristics of an object along with its behavior in "one package"

Encapsulation Combination of characteristics of an object along with its behavior in "one package" Cannot make object do anything it does not already "know" how to do. Cannot make up new properties, methods, or events. Sometimes referred to as data hiding, an object can expose only those data elements and procedures that it wishes.

Inheritance Ability to create a new class from an existing class ◦ Original class

Inheritance Ability to create a new class from an existing class ◦ Original class is called Base Class, Superclass, or Parent Class. ◦ Inherited class is called Subclass, Derived Class, or Child Class. For example, each form created is inherited from the existing Form class. Purpose of inheritance is reusability.

Inheritance Example Base/Parent Class ◦ Person Derived/Child Class ◦ Employee ◦ Customer ◦ Student

Inheritance Example Base/Parent Class ◦ Person Derived/Child Class ◦ Employee ◦ Customer ◦ Student The derived classes inherit from the base class.

Polymorphism Methods having identical names, but different implementations ◦ Radio button, check boxes, and

Polymorphism Methods having identical names, but different implementations ◦ Radio button, check boxes, and list boxes all have a Select method—the Select method operates appropriately for its class. Overloading — Several argument lists for calling the method ◦ Example: Message. Box. Show method Overriding — Refers to a method that has the same name as its base class ◦ Method in subclass takes precedence.

Designing Your Own Class Analyze characteristics needed by new objects. ◦ Characteristics or properties

Designing Your Own Class Analyze characteristics needed by new objects. ◦ Characteristics or properties are defined as variables. ◦ Define the properties as variables in the class module. Analyze behaviors needed by new objects. ◦ Behaviors are methods. ◦ Define the methods as sub procedures or functions.

Creating Properties in a Class Define variables inside the Class module by declaring them

Creating Properties in a Class Define variables inside the Class module by declaring them as Private — these store the value of the properties of the class. Do not make Public, since that would violate encapsulation (each object should be in charge of its own data).

Property Procedures Properties in a class are accessed with accessor methods in a property

Property Procedures Properties in a class are accessed with accessor methods in a property procedure. Name used for property procedure is the name of the property seen by the outside world. Set accessor method. ◦ Uses Value keyword to refer to incoming value for property ◦ Assigns a value to the property Get Statement uses the value keyword to refer to the incoming value of the property. ◦ Must assign a return value to the procedure name or use a Return Statement to return a value.

Property Procedure General Form {Private | Protected } Class. Variable As Data. Type [Public]

Property Procedure General Form {Private | Protected } Class. Variable As Data. Type [Public] Property. Name( ) As Data. Type Get Return Class. Variable [|Property. Name = Class. Variable] End Get Set (By. Value As Data. Type) [statements, such As validation] Class. Variable = Value End Set End Property

Read-Only Properties In some instances, a value for a property can be retrieved by

Read-Only Properties In some instances, a value for a property can be retrieved by an object but not changed. A property can be written to create a read-only property. ◦ Create a read-only property by using the Read. Only modifier. ' The property procedure for a read-only property. Read. Only Property Total. Pay() As Decimal Get Return Total. Pay. Decimal End Get End Property

Write-Only Properties At times, a property can be assigned by an object, but not

Write-Only Properties At times, a property can be assigned by an object, but not retrieved. ◦ Create a property block that contains only a Set to create a write-only property. ' Private module-level variable to hold the property value. Private Price. Decimal As Decimal Public Write. Only Property Price() As Decimal Set(By. Val value As Decimal) If value >= 0 Then Price. Decimal = value End If End Set End Property

Constructors and Destructors Constructor ◦ Method that automatically executes when an object is instantiated

Constructors and Destructors Constructor ◦ Method that automatically executes when an object is instantiated ◦ Constructor must be public and is named New. ◦ Ideal location for an initialization tasks such as setting the initial values of variable and properties Destructor ◦ Method that automatically executes when an object is destroyed ◦ Rarely needed in. NET classes (automatic garbage collection)

Overloading the Constructor Overloading means that two methods have the same name but a

Overloading the Constructor Overloading means that two methods have the same name but a different list of arguments (the signature). Create by giving the same name to multiple procedures in a class module, each with a different argument list.

Parameterized Constructor that requires arguments Allows arguments to be passed when creating an object

Parameterized Constructor that requires arguments Allows arguments to be passed when creating an object

Value Types and Reference Types • Data types are divided into two categories—value types

Value Types and Reference Types • Data types are divided into two categories—value types and reference types. • A variable of a value type (such as Integer) contains a single value of that type. • Dim Count. Integer as Integer = 7 • A reference type variable is initialized by default to the value Nothing if you do not initialize it in its declaration to refer to an object. • When you attempt to use a variable that contains Nothing to interact with an object, you’ll receive a Null. Reference. Exception. • Dim Employee as Person

Class Scope A class’s instance variables, properties and methods have class scope. Within this

Class Scope A class’s instance variables, properties and methods have class scope. Within this scope, a class’s members are accessible to all of the class’s other members and can be referenced simply by name. Outside a class’s scope, class members cannot be referenced directly by name. Those class members that are visible (such as Public members) can be accessed through a variable that refers to an object of the class (for example, time. Hour).

Auto-Implemented Properties • For properties that do not have any additional logic in their

Auto-Implemented Properties • For properties that do not have any additional logic in their Set and Get accessors, there’s a feature—called auto-implemented properties—that allows you to write one line of code and have the compiler to generate the property’s code for you. • Public Property Hour As Integer • The compiler would then generate a Private instance variable of type Integer named _Hour and the following property code • Public Property Hour As Integer Get Return _Hour End Get Set(value As Integer) _Hour = value End Set End Property

Garbage Collection Every object you create uses various system resources, including the memory that

Garbage Collection Every object you create uses various system resources, including the memory that holds the object itself. These resources must be returned to the system when they’re no longer needed to avoid resource leaks. The Common Language Runtime (CLR) performs automatic garbage collection to reclaim the memory occupied by objects that are no longer in use. When there are no more references to an object, it’s marked for garbage collection by the CLR.

Garbage Collection • Resources like memory that are allocated and reclaimed by the CLR

Garbage Collection • Resources like memory that are allocated and reclaimed by the CLR are known as managed resources. • Other types of resource leaks can occur. • For example, an app may open a file on disk to modify the file’s contents. • If the app does not close the file, other apps may not be allowed to use the file until the app that opened the file finishes. • Resources like files that you must manage are known as unmanaged resources (because they’re not managed by the CLR). • Such resources are typically scarce and should be released as soon as they’re no longer needed by a program.

Instance Variables versus Shared Variables Instance variables or properties ◦ Separate memory location for

Instance Variables versus Shared Variables Instance variables or properties ◦ Separate memory location for each instance of the object Shared variables or properties ◦ Single variable that is available for ALL objects of a class ◦ Can be accessed without instantiating an object of the class When creating, use the Shared keyword to create. Shared properties can be set to read-only so that their values can be retrieved but not set directly.