1
/** An example class used to demonstrate how to
2
* enable cloning for a class without fields that
3
* contain object references..
4
*/
5
public class Pair implements Cloneable { //必须实现Cloneable,
6![](/Images/OutliningIndicators/InBlock.gif)
7
private int a, b; //否则会抛出CloneNotSupportedException异常
8![](/Images/OutliningIndicators/InBlock.gif)
9
/** Class constructor method
10
* @param initA Initial value for the first field
11
* @param initB Initial value for the second field
12
*/
13
public Pair( int initA, int initB ) {
14
a = initA;
15
b = initB;
16
}
17![](/Images/OutliningIndicators/InBlock.gif)
18
/** Convert object to String representation
19
* @return The value of the array as a String
20
*/
21
public String toString() {
22
return "( " + a + ", " + b + " )";
23
}
24![](/Images/OutliningIndicators/InBlock.gif)
25
/** The test method for the class
26
* @param args Not used
27
* @exception CloneNotSupportedException
28
* If clone not supported by
29
* inherited clone method
30
*/
31
public static void main( String[] args )
32
throws CloneNotSupportedException {
33
System.out.println( "examples.cloning.Pair" );
34
Pair x = new Pair( 5, 6 );
35
System.out.println( x );
36![](/Images/OutliningIndicators/InBlock.gif)
37
Pair y = (Pair) x.clone();
38
System.out.println( y );
39
}
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
运行结果为:
examples.cloning.Pair
( 5, 6 )
( 5, 6 )