New (user-defined) types are most often created in C# with
the keyword class
.
A class defines a new type; an object is an instance of that type.
Making your member fields private allows you to change how you store that data (as a member variable, in a database) without breaking your client’s code.
Encapsulation is the principle of keeping each class discreet and self-contained, so you can change the implementation of one class without affecting any other class.
Specialization allows a new class to “inherit” many of the characteristics of an existing class, and to be used polymorphically with that class. Specialization is implemented in C# through inheritance.
Polymorphism is the ability to treat derived classes as if they were all instances of their base class, yet have each derived class specialize its own implementation of the base class’s methods.
The is-a relationship is established through inheritance. The has-a relationship is implemented through aggregation (making one type a member variable of another type).
Access modifiers indicate which class’ methods have access to a given field, property or method of a class. Public members are available to methods of any class; private members are available only to methods of instances of the same class.
State is the current conditions and values of an object, and is implemented with properties and member variables. Capabilities are what the object can do, exposed through public methods. Responsibilities are the promises a well-designed class makes to the clients of that class.
A use-case scenario is a tool for the analysis of a problem. In a use-case scenario, you walk through the details of how your product will be used by one user to accomplish one task, noting which classes interact and what their responsibilities are.
Draw a class diagram for a class named “vehicle” and show how the classes “car,” “truck,” and “motorcycle” derive from it. (See Figure A-4.)
Define a class Book
, in
which a book has a title, author, and ISBN, and the book can be
read or shelved:
class Book { private String title; private String author; private String ISBN; public Book (string title, string author, string ISBN) { this.title = title; this.author = author; this.ISBN = ISBN; } public void Read( ) // member method { // code here to read book } public void Shelve( ) // member method { // code here to shelve book };