Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tuc Goodwin  Object and Component-Oriented Programming  Classes in C#  Scope and Accessibility  Methods and Properties  Nested.

Similar presentations


Presentation on theme: "Tuc Goodwin  Object and Component-Oriented Programming  Classes in C#  Scope and Accessibility  Methods and Properties  Nested."— Presentation transcript:

1 Tuc Goodwin tgoodwin@ntpcug.org

2  Object and Component-Oriented Programming  Classes in C#  Scope and Accessibility  Methods and Properties  Nested and Partial Classes  Static Classes and Data  Object Initializers

3  A Class is a data structure that combines data storage with methods for manipulating the data.  Four primary OO concepts  Encapsulation  Abstraction  Inheritance  Polymorphism

4  Define the body of a class with opening and closing curly braces { }  Scope – Where you declare a variable will determine who can see it. If you can see it, you can use it.  Declaration space – no two entities are allowed to have the same name Class Contact { public int age; Public void F() { age = 18; } public void G() { int age; age = 21; }

5

6 Demo

7  Accessibility allows you to control visibility  Namespaces are not allowed to have any access modifiers. They are always public.  Classes default to internal, but are allowed to have either public or internal.  A nested class, a class defined inside of another class defaults to private accessibility  Class members default to private

8 ModifierDescription publicAccess is not limited. protectedAccess is limited to the containing class or types derived from the containing class. internalAccess is limited to the containing assembly. protected internalAccess is limited to the containing assembly or types derived from the containing classes. privateAccess is limited to the containing class only.

9  Best practice – Explicitly declaring accessibility indicates the choice was a conscious decision… i.e. self-documenting.  Be careful of “protected internal” because it is effectively one or the other. C# does not provide a concept of protected and internal.

10  Fields are variables that represented data associated with a class. Fields are private by default  Constants are immutable. They can be declared with access modifiers. They must be assigned a value as part of a declaration.

11 Demo

12  A property provides a simple way to access a field. This allows for encapsulation, hiding the internal details of the field.

13

14

15

16  How would you create a read-only property?  Remove the Set method leave only the Get method  How would you create a write-only property?  Remove the Get method leave only the Set method A simple mnemonic device: Get – “Gives” Set – “Receives”

17 Demo

18  Methods (sometimes called functions) define and implement a behavior or action that can be performed.

19  Methods can accept zero or more declared parameters

20  Value parameters  Reference parameters – uses the ref keyword causes arguments to be passed by reference  Output parameters – uses the out keyword

21  Parameter arrays are declared with the params keyword  A method’s formal parameter can include only a single parameter array  The parameter array must be the last parameter in the list of any parameter.

22  …can vary only by signature.  … can vary only by the number and types of parameters  You can overload a method to have different return types, but you should avoid it to minimize the possibility for confusion…

23

24 Demo

25  How do you specify an optional parameter?  A parameter with a default argument is an optional parameter  How do you specify a required parameter?  A parameter without a default argument is a required parameter

26  You instantiate a class to create an instance Contact c = new Contact();  A default constructor is the same name as the class and does not return a value.

27

28 The this keyword

29

30

31  A nested class is one that is fully enclosed, or nested, inside another class declaration  They have at least the same access level as the containing class.

32  Partial classes enable you to split the declaration of a class into multiple parts, typically across multiple files.  Partial classes are implemented in the same way as a normal class but contain the keyword partial.

33  A static class can have only a static constructor  Static classes can not be instantiated, that is multiple instances cannot be created.  Typically used for utility or helper methods.

34  Extension methods must be declared in a non-nested, non-generic static class.  An extension method defined in the same assembly as the type being extended

35 Demo

36  Suppose you want to instantiate and assign values as part of the constructor call?  This can be done by initializing the object at the same time.

37

38  Object and Component-Oriented Programming  Classes in C#  Scope and Accessibility  Methods and Properties  Nested and Partial Classes  Static Classes and Data  Object Initializers

39

40 ChaptersPresenterDate Inheritance, Interfaces, and Abstract ClassesDavid Stark11/13/2010 Creating Enumerated Types and StructuresShawn Weisfeld12/11/2010 Events and Event HandlingTuc Goodwin1/8/2011 Controlling Program FlowDavid Stark2/12/2011 Using Stings and Regular ExpressionsShawn Weisfeld3/12/2012 Working with Arrays and CollectionsTuc Goodwin4/9/2011 Handling Errors using ExceptionsDavid Stark5/14/2011 Understanding GenericsShawn Weisfeld6/11/2011 Understanding Query ExpressionTuc Goodwin7/9/2011


Download ppt "Tuc Goodwin  Object and Component-Oriented Programming  Classes in C#  Scope and Accessibility  Methods and Properties  Nested."

Similar presentations


Ads by Google