Embed
Email

CSCI 1302

Document Sample

Shared by: dfhdhdhdhjr
Categories
Tags
Stats
views:
1
posted:
1/13/2012
language:
pages:
24
CSCI 1302



Object-Oriented Programming

Intermediate C#

Agenda

 Parameter passing (ref, out, & value)

 Static

 Const

 Overloading

 Inheritance

Parameter Passing

 By default, parameters are passed by value

 A copy of the value is passed

 The original is not modifiable

 Use “ref” to create by-reference parameter passing

 A reference to the value is passed (akin to a pointer)

 The original (actual) parameter is modifiable

 Use “out” when data is strictly coming out of (and being

created in) the function

 The original has no value

 A new value will be placed into the parameter by the function

By Value Parameter Example

float CalculateCost (float unit_cost, int how_many)

{

return unit_cost * how_many;

}



static void Main()

{

...

line_cost = CalculateCost(uc, hm);

...

}

By Value Parameter Example

float CalculateCost (float unit_cost, int how_many)

{

return unit_cost * how_many;

}

Even if you change

static void Main() these locally, they won’t

{ change in Main.

...

line_cost = CalculateCost(uc, hm);

...

}

By Reference Parameter Example

void UpdateGrade (ref float grade, float factor)

{

grade += factor;

}



static void Main()

{

...

for(i=0; i 4))

}



static void Main()

{

...

ReadChoice(c);

...

}

Out Parameter Example

void ReadChoice (out int choice)

{

do {

Console.WriteLine("Please enter a choice 1-4: ");

choice = Int32.Parse(Console.ReadLine());

} while ((choice 4))

}

Choice is generated in

static void Main()

the module and then

{

... returned to Main

ReadChoice(c);

...

}

Static

 Each instance of a class (called an object)

has a copy of the attributes

 Changing an attribute in one object doesn’t

affect the attribute of another object

 But what if we want persistence (shared)

among all instances?

Static Variables

void PrintNumbers ()

{

static int count = 0;

Console.WriteLine(count);

count++;

}



static void Main()

{

...

for(i=0; i MaxSpeed)

currentSpeed = MaxSpeed;

}

...

}

Overloading

 Overloading involves using the same

method/function name

 Vary the number of parameters

 Vary the type of parameters

 Cannot just change return type (ambiguity in

invocation)

 Useful to keep things simple

 Squaring a number…

Overloading Example

int Square (int i)

{

return i * i;

}



float Square (float i)

{

return i * i;

}



static void Main()

{

...

float x = Square(5.3);

int y = Square(9);

...

}

Operator

Overloading

class BMW_Z4

{

...

public BMW_Z4 ()

{

Initialize(0, 2004, false);

}

Notice same method

public BMW_Z4 (int my)

{ name, different

Initialize(0, my, false);

} parameters

private Initialize(int cs, int my, bool tu)

{

currentSpeed = cs; Place common

ModelYear = my;

TopUp = tu; initialization in a

}

...

separate function

}

Inheritance

 Inheritance allows one class to take on the

properties of another

 Superclass-subclass relationship

 Sometimes called parent-child relationship

 Use the keyword extends to express this

relationship

 Subclass will “inherit” certain attributes and

methods

 Benefit: good design, reuse of code

Class Hierarchy

Mammal

int weight

giveBirth( )





Land-Mammal

int numLegs





Question: how many

Dog attributes does Dog

boolean rabid have?





Chihuahua SheepDog

Things to Note

 Land-Mammal is a superclass to Dog, but

a subclass to Mammal

 Dog has three attributes

 weight,numLegs and rabid

 Two from inheritance, one it declared itself

Visibility and Inheritance

 Public – allows all to see

 Private – allows only class in which defined to

see

 Protected – allows class and all subclasses that

inherit to see



 Consequently, we’ll now use protected instead

of private by default… (common)

C# Syntax

class Person

{

...

}



class Student : Person

{

...

}

Notice the use of “:”



class Professor : Person

{

...

}

The Base Class: “Object”

 All classes in C# inherit (sometimes implicitly)

from Object

 Includes common set:

 ToString()

 GetType()

 Equals()

 Often useful to override (implement) these virtual

functions

 “public override string ToString()…”

FIN



Related docs
Other docs by dfhdhdhdhjr
Creative Vision Quilt
Views: 0  |  Downloads: 0
Harnesses - Petzl
Views: 0  |  Downloads: 0
GYSA PARENT EDUCATION PROGRAM
Views: 0  |  Downloads: 0
Evaluating Athletics.ppt - brannockpe
Views: 0  |  Downloads: 0
Hydroelectric Power - Backwell School E-Mail
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!