/Users/lyon/j4p/src/javassist/sample/duplicate/Ball.java

1    package javassist.sample.duplicate; 
2     
3    import java.awt.Graphics; 
4    import java.awt.Color; 
5     
6    public class Ball { 
7        private int x, y; 
8        private Color color; 
9        private int radius = 30; 
10       private boolean isBackup = false; 
11    
12       public Ball(int x, int y) { 
13           move(x, y); 
14           changeColor(Color.orange); 
15       } 
16    
17       // This constructor is for a backup object. 
18       public Ball(Ball b) { 
19           isBackup = true; 
20       } 
21    
22       // Adjust the position so that the backup object is visible. 
23       private void adjust() { 
24           if (isBackup) { 
25               this.x += 50; 
26               this.y += 50; 
27           } 
28       } 
29    
30       public void paint(Graphics g) { 
31           g.setColor(color); 
32           g.fillOval(x, y, radius, radius); 
33       } 
34    
35       public void move(int x, int y) { 
36           this.x = x; 
37           this.y = y; 
38           adjust(); 
39       } 
40    
41       public void changeColor(Color color) { 
42           this.color = color; 
43       } 
44   } 
45