1 / 29

Advanced Object-Oriented Programming Features

11. Advanced Object-Oriented Programming Features. C# Programming: From Problem Analysis to Program Design 3rd Edition. Chapter Objectives. Learn the major features of object-oriented languages Design and develop multitier applications using component-based development methods

gallia
Download Presentation

Advanced Object-Oriented Programming Features

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 11 Advanced Object-Oriented Programming Features C# Programming: From Problem Analysis to Program Design 3rd Edition C# Programming: From Problem Analysis to Program Design

  2. Chapter Objectives • Learn the major features of object-oriented languages • Design and develop multitier applications using component-based development methods • Use inheritance to extend the functionality of user-defined classes • Create abstract classes that include abstract methods C# Programming: From Problem Analysis to Program Design

  3. Chapter Objectives (continued) • Distinguish the differences between sealed and abstract classes • Become aware of partial classes • Design and implement interfaces • Understand why polymorphic programming is a common goal in .NET • Explore generics and learn how to create generic classes and generic methods C# Programming: From Problem Analysis to Program Design

  4. Chapter Objectives (continued) • Investigate static versus dynamic typing and become aware of when dynamic and var types are used • Work through a programming example that illustrates the chapter’s concepts C# Programming: From Problem Analysis to Program Design

  5. Object-Oriented Language Features • Abstraction • Abstract or identify the objects involved in the problem • Encapsulation • Packaging data and behaviors into a single unit • Inheritance • Reuse of code through extending program units • Polymorphism • Multiple implementations of the same behaviors C# Programming: From Problem Analysis to Program Design

  6. Component-Based Development Figure 11-1 Component-based development C# Programming: From Problem Analysis to Program Design

  7. Component-Based Development (continued) • Multitier applications • Data access tier for accessing data from text files and databases • Graphical user interface tier for user interaction • Windows • Web • Components implemented through classes in C# • Class library files with a dynamic link library (DLL) extension C# Programming: From Problem Analysis to Program Design

  8. Inheritance • Enables you to: • Create a general class and then define specialized classes that have access to the members of the general class • Associated with an "is a" relationship • Specialized class “is a” form of the general class • Classes can also have a "has a" relationship, not associated with inheritance • "has a" relationship is associated with containment or aggregation C# Programming: From Problem Analysis to Program Design

  9. Inheriting from the Object Class • Every object inherits four methods as long as reference to the System namespace included Figure 11-2 Methods inherited from an object C# Programming: From Problem Analysis to Program Design

  10. Inheriting from Other .NET FCL Classes • Add functionality to programs with minimal programming • Extend System.Windows.Forms.Form class to build GUIs (Button, Label, TextBox, ListBox) Base class Derived class Figure 11-3 Derived class C# Programming: From Problem Analysis to Program Design

  11. Creating Base Classes for Inheritance • Can define your own classes from which other classes can inherit • Base class is called the super or parent class • Data members are defined with a private access modifier • Constructors are defined with public access modifiers • Properties offer public access to data fields C# Programming: From Problem Analysis to Program Design

  12. Overriding Methods • Replace the method defined at a higher level • Keyword override included in derived class • Base method includes virtual, abstract, or override keyword • Overriding differs from overloading a method • Overridden methods have exactly the same signature • Overloaded methods each have a different signature Figure 11-4 ToString( ) signature C# Programming: From Problem Analysis to Program Design

  13. Overriding Methods (continued) • Example of polymorphism • ToString( ) method can have many different definitions • ToString( ) uses the virtual modifier, implying that any class can override it • Derived classes inherit from a base class • Also called subclasses or child classes • Protected access modifiers • Access only to classes that derived from them • Access to change data in the base class C# Programming: From Problem Analysis to Program Design

  14. Calling the Base Constructor • To call the constructor for the base class, add keyword :base between the constructor heading for the subclass and the opening curly brace public Student(string id, string fname, string lname, string maj, int sId) :base (id, lname, fname) // base constructor arguments { . . . • Base constructor must have a constructor with matching signature C# Programming: From Problem Analysis to Program Design

  15. Using Members of the Base Class • Scope • Methods defined in subclass take precedence when named the same name as member of a parent class • Can call an overridden method of the base class • Use keyword base before the method name returnbase.GetSleepAmt( ) // Calls GetSleepAmt( ) in // parent class C# Programming: From Problem Analysis to Program Design

  16. Relationship between the Person and Student Classes Figure 11-5 Inheritance class diagram C# Programming: From Problem Analysis to Program Design

  17. Making Stand-Alone Components • Compile class and create an assembly • Assemblies are units configured and deployed in .NET • Classes can be compiled and stored as a dynamic link library (DLL) instead of into the EXE file type • Adds a reference to the DLL • That referenced file with the .dll extension becomes part of the application’s private assembly C# Programming: From Problem Analysis to Program Design

  18. Using Visual Studio to Create DLL Files Figure 11-6 Creating a DLL component C# Programming: From Problem Analysis to Program Design

  19. Build Instead of Run to Create DLL • Create the parent class first in order to use IntelliSense • Create the subclass class in the same way as usual, except Build instead of Run the project to create the DLL Figure 11-7 Attempting to run a class library file C# Programming: From Problem Analysis to Program Design

  20. Add Reference to Base Class One of the first things to do is Add a Reference to the Parent DLL Figure 11-8 Adding a reference to a DLL C# Programming: From Problem Analysis to Program Design

  21. Add Reference to Base Class (continued) Use Browse button to locate DLL Figure 11-9 Add Reference dialog box C# Programming: From Problem Analysis to Program Design

  22. Add Reference to Base Class (continued) Figure 11-10 Locating the Person.dll component C# Programming: From Problem Analysis to Program Design

  23. Adding a New Using Statement • In the subclass class, if you simply type the following, you receive an error message publicclass Student : Person Figure 11-11 Namespace reference error C# Programming: From Problem Analysis to Program Design

  24. Adding a New Using Statement (continued) Notice fully qualified name • To avoid error, could type: publicclass Student : PersonNamespace.Person • Better option is to add a using directive using PersonNamespace; // Use whatever name you // typed for the namespace for Person • After typing program statements, build the DLL from the Build option under the Build menu bar C# Programming: From Problem Analysis to Program Design

  25. Creating a Client Application to Use the DLL • DLL components can be reused with many different applications • Two steps • Add a reference to the DLL components • Include a using statement with the namespace • Then declare an object of the component type(s) • Use members of the derived, base, or referenced classes C# Programming: From Problem Analysis to Program Design

  26. Creating a Client Application to Use the DLL (continued) Figure 11-12 DLLs referenced in the PresentationGUI class C# Programming: From Problem Analysis to Program Design

  27. Creating a Client Application to Use the DLL (continued) Figure 11-13 PresentationGUI output referencing two DLLs C# Programming: From Problem Analysis to Program Design

  28. Using ILDASM to View the Assembly • (ILDASM): Intermediate Language Disassembler tool • Assembly shows the signatures of all methods, data fields, and properties • One option– display the source code as a comment in the assembly • Can be run from the command line or from within the Visual Studio IDE • Must be added as an external tool in Visual Studio C# Programming: From Problem Analysis to Program Design

  29. ILDASM to View the Assembly .ctors are constructors IL code for the method Data fields Properties converted to methods Figure 11-14 Student.dll assembly from ILDASM C# Programming: From Problem Analysis to Program Design

More Related