' Visual Basic 2008 9.0 .NET Examples - Containment - Object Oriented Programming : Class Robot Private m_Position As Position = New Position Public ReadOnly Property Position() As Position Get Position = m_Position End Get End Property Private m_Direction As Integer Public Sub Rotate() m_Direction += 1 If m_Direction > 3 Then m_Direction = 0 End Sub Public Sub PlaceStep() Select Case m_Direction Case 0 ' up Position.Y = Position.Y + 1 Case 1 ' right Position.X = Position.X + 1 Case 2 ' down Position.Y = Position.Y - 1 Case 3 ' left Position.X = Position.X - 1 End Select End Sub End Class Module RobotTestFixture Public Sub Main() Dim robot1 As Robot = New Robot Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 0) Console.WriteLine(robot1.Position.Y = 0) ' robot1.PlaceStep() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 0) Console.WriteLine(robot1.Position.Y = 1) ' robot1.PlaceStep() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 0) Console.WriteLine(robot1.Position.Y = 2) ' robot1.Rotate() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 0) Console.WriteLine(robot1.Position.Y = 2) ' robot1.PlaceStep() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 1) Console.WriteLine(robot1.Position.Y = 2) ' robot1.Rotate() robot1.PlaceStep() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 1) Console.WriteLine(robot1.Position.Y = 1) ' robot1.Rotate() robot1.PlaceStep() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 0) Console.WriteLine(robot1.Position.Y = 1) ' robot1.Rotate() robot1.PlaceStep() Console.WriteLine(robot1.Position IsNot Nothing) Console.WriteLine(robot1.Position.X = 0) Console.WriteLine(robot1.Position.Y = 2) ' Console.ReadLine() End Sub End Module ' Visit www.studyvb.com for more examples. Copyright 2003-2008 De Wolf.