| using System; |
| using System.Collections.Generic; |
| |
| public class runme |
| { |
| static void Main() |
| { |
| // ----- Object creation ----- |
| |
| Console.WriteLine("Creating some objects:"); |
| Circle c = new Circle(10); |
| Console.WriteLine(" Created " + c); |
| Square s = new Square(10); |
| Console.WriteLine(" Created " + s); |
| |
| // ----- Access a static member ----- |
| |
| Console.WriteLine("\nA total of " + Shape.nshapes + " shapes were created"); |
| |
| // ----- Member data access ----- |
| |
| // Set the location of the object |
| |
| c.x = 20; |
| c.y = 30; |
| |
| s.x = -10; |
| s.y = 5; |
| |
| Console.WriteLine("\nHere is their current position:"); |
| Console.WriteLine(" Circle = ({0}, {1})", c.x,c.y); |
| Console.WriteLine(" Square = ({0}, {1})", s.x,s.y); |
| |
| // ----- Call some methods ----- |
| |
| Console.WriteLine("\nHere are some properties of the shapes:"); |
| List <Shape> shapeList = new List <Shape> { c,s }; |
| foreach(var o in shapeList){ |
| Console.WriteLine(" " + o); |
| Console.WriteLine(" area = " + o.area()); |
| Console.WriteLine(" perimeter = " + o.perimeter()); |
| } |
| |
| Console.WriteLine("\nGuess I'll clean up now"); |
| |
| // Note: this invokes the virtual destructor |
| c.Dispose(); |
| s.Dispose(); |
| |
| s = new Square(10);; |
| Console.WriteLine(Shape.nshapes + " shapes remain"); |
| Console.WriteLine("Goodbye"); |
| } |
| } |