Deep Clone : ICloneable « Collections « VB.Net Tutorial

Home
VB.Net Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statements
5.Date Time
6.Class Module
7.Development
8.Collections
9.Generics
10.Attributes
11.Event
12.LINQ
13.Stream File
14.GUI
15.GUI Applications
16.Windows Presentation Foundation
17.2D Graphics
18.I18N Internationlization
19.Reflection
20.Regular Expressions
21.Security
22.Socket Network
23.Thread
24.Windows
25.XML
26.Database ADO.net
27.Design Patterns
VB.Net
VB.Net by API
VB.Net Tutorial » Collections » ICloneable 
8.19.2.Deep Clone
Public Class Point
  Implements ICloneable

  Public X as Integer
  Public Y as Integer

  Sub New(XX as Integer, YY as Integer)
    X = XX
    Y = YY
  End Sub

  Public Overloads Function ToString() As String
    Return "(" & X & "," & Y & ")"
  End Function

  Public Overridable Function Clone() As Object _
                     Implements ICloneable.Clone
    Return New Point(X, Y)
  End Function
End Class

Public Class Line 
  Inherits Point

  Public StartPoint As Point

  Sub New(As Integer, Y As Integer, Other As Point)
    MyBase.New(X, Y)
    StartPoint = Other.Clone()
  End Sub

  Public Overloads Function ToString() As String
    Return "(" & Me.X & "," & Me.Y & ")"  & _
      " Other: " & StartPoint.ToString()
  End Function

  Public Overrides Function Clone() As Object
    Return New Line(Me.X, Me.Y, StartPoint.Clone())
  End Function
End Class

Module Test 
  Sub Main()
    Dim P as New Point(45)
    Dim P1 As New Line(3,4, P)

    Dim P2 As Line
    P2 = P1.Clone()

    P2.StartPoint.X = 5
    P2.StartPoint.Y = 4
    Console.WriteLine("First Object: " & P1.ToString()) 
    Console.WriteLine("Cloned Object: " & P2.ToString())
  End Sub
End Module
First Object: (3,4) Other: (4,5)
Cloned Object: (3,4) Other: (5,4)
8.19.ICloneable
8.19.1.ICloneable
8.19.2.Deep Clone
8.19.3.Shallow copy
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.