Difference between revisions of "OOP Class9"

esse quam videri
Jump to: navigation, search
(Home Work)
(Home Work)
Line 156: Line 156:
  
 
==Home Work==
 
==Home Work==
 
*Create a UML diagram  of Your classes that use association, containment, and inheritance. POst an imgage of the UML on your website.
 
700 px wide large image
 
175 px thumbnail
 
Make sure there is you name and email.
 
 
*Practice #2 alone or use Pair Programming to make tests and classes from the following UML
 
 
[[OOP Students Classes Diagram]]
 
 
If you need to add any supporting methods or properties that are not on the diagram feel free.
 
 
 
<pre>
 
Test Student()
 
 
Jeff Meyers says hello.
 
StudentDiagram.Student Jeff Meyers
 
StudentID = 0000
 
0 Courses
 
 
Test Student("Matina" , "Navratilova" )
 
 
Matina Navratilova says hello.
 
StudentDiagram.Student Matina Navratilova
 
StudentID = 0000
 
0 Courses
 
 
Test Student("Dan", "Rockwood")
 
 
Dan Rockwood says hello.
 
StudentDiagram.Student Dan Rockwood
 
StudentID = 0000
 
0 Courses
 
 
Make Some Course
 
CourseName: Object Oriented Programming CourseName: 36-1300
 
 
Add Course
 
StudentDiagram.Student Dan Rockwood
 
StudentID = 0000
 
5 Courses
 
CourseName: Object Oriented Programming CourseName: 36-1300
 
CourseName: Media Theory and Design 1 CourseName: 36-1000
 
CourseName: Media Theory and Design 2 CourseName: 36-2000
 
CourseName: English 101 CourseName: 52-1000
 
CourseName: Gym 101 CourseName: 11-1111
 
StudentDiagram.Student Dan Rockwood
 
StudentID = 0000
 
4 Courses
 
CourseName: Object Oriented Programming CourseName: 36-1300
 
CourseName: Media Theory and Design 1 CourseName: 36-1000
 
CourseName: English 101 CourseName: 52-1000
 
CourseName: Gym 101 CourseName: 11-1111
 
StudentDiagram.Student Dan Rockwood
 
StudentID = 0000
 
5 Courses
 
CourseName: Object Oriented Programming CourseName: 36-1300
 
CourseName: Media Theory and Design 1 CourseName: 36-1000
 
CourseName: test 101 CourseName: 00-0000
 
CourseName: English 101 CourseName: 52-1000
 
CourseName: Gym 101 CourseName: 11-1111
 
 
Test Instructor
 
StudentDiagram.Instructor Edna Krabappel
 
FacultyID = 0000
 
1 Course
 
CourseName: English 101 CourseName: 52-1000
 
 
Test Pencil
 
StudentDiagram.Pencil.isSharp = True
 
Dan has no pencil
 
StudentDiagram.Pencil.isSharp = True
 
All work and no play makes Dan a dull student.
 
StudentDiagram.Pencil.isSharp = False
 
All work and no play makes Dan a dull student.
 
StudentDiagram.Pencil.isSharp = False
 
</pre>
 

Revision as of 18:09, 3 November 2009


Encapulation

I forgot to show this earlier

http://iam.colum.edu/oop/browser/browser.aspx?f=/classsource/class4/DogBark


PolyMorphism

Using the least specific class to increase reuse.

Review Coins

?'s

Review MotorVehicle

?'s

Motorvehicle Diagram

Oop Motorvehicle Diagram

http://iam.colum.edu/oop/browser/browser.aspx?f=/classsource/class7/MotorvehicleRace

Private instance data members - accessors

Microsoft has stared calling private variables with accessors Properties

Private class memebers the use get and set keyword to set and retrieve data. Get and set are known as accessor methods private members are helpful when you want to also do other things when a data member is changed or change the rutern value under certain conditions. C# Programmer's Reference - Accessors http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfaccessorspg.asp. Lastly accessor also make read only and write only variables possible

<csharp>//private string color read/write private string color;

public string Color {

 get
 {
  return color;
 }
 set
 {
  color = value;
 }

}

//private string color read only private string color;

public string Color {

 get
 {
  return color;
 }

}</csharp>


Another property that is a good candidate for a private instance data member is the dogs age

<csharp> private string age;

public int Age {

 //age can only be accessed with get there is no set accessor
 //age must be set with HappyBirthday()
 get
 {
  return age;
 }

}

public int HappyBirthday() {

 age++;
 return age;

}


</csharp>

Windows forms

Events

events from a windows form or web page are handled by event handlers. Events are raised when a user interacts with interface elements and handled by the event handlers.


http://www.csharphelp.com/archives/archive253.html

Examaple of event handlers and classes

http://iam.colum.edu/oop/MotorvehicleRace.zip

<csharp> private void button1_Click(object sender, EventArgs e)

       {
           Console.WriteLine("button1 Clicked");
           MessageBox.Show("button1 Clicked");   
       }

</csharp>

Create a windows form with a button the uses your class.

<csharp> using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

namespace WindowsDog {

   public partial class Form1 : Form
   {
       Dog fido;
       
       public Form1()
       {
           InitializeComponent();
           fido = new Dog();
       }
       private void btnBark_Click(object sender, EventArgs e)
       {
           lblBark.Text = fido.Bark();
       }


       public class Dog 
       {
           public string Name;		// the dog's name
           public int Age;			// the dog's age
           public int Weight;			// the dog's weight
           public string BarkSound;	// the sound of the dog's bark
           public Dog()
           {
               BarkSound = "Woof!!!";
           }
           public string Bark()
           {
               return this.BarkSound;
           }
           public void Eat()
           {
               //put eat code here 
           }
       }	
   }

} </csharp>

Home Work