Advertisement
Guest User

Java Clone (not work)

a guest
Apr 28th, 2015
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. package javaapplication9;
  2.  
  3. import java.util.Timer;
  4. import java.util.TimerTask;
  5.  
  6. public class JavaApplication9 {
  7.  
  8.     Pot pot;
  9.     Pot initPot;
  10.     Timer timer;
  11.  
  12.     public static void main(String[] args) {
  13.         JavaApplication9 app = new JavaApplication9();
  14.         app.init();
  15.         app.run();
  16.     }
  17.  
  18.     public void init() {
  19.         pot = new Pot();
  20.         pot.init();
  21.  
  22.         pot.setParams(1, 2, 3, 4);
  23.  
  24.         timer = new Timer();
  25.     }
  26.  
  27.     public void run() {
  28.         try {
  29.             pot.initPot = (Pot) pot.clone();
  30.             initPot = (Pot) pot.clone();
  31.         } catch (CloneNotSupportedException ex) {
  32.             System.out.println("Объект не может быть клонированным.");
  33.         }
  34.  
  35.         timer.schedule(new timerAction(), 1000);
  36.         timer.schedule(new timerAction(), 1000);
  37.         timer.schedule(new timerAction(), 1000);
  38.     }
  39.  
  40.     class timerAction extends TimerTask {
  41.  
  42.         @Override
  43.         public void run() {
  44.             pot.setParams(pot.params.param1 + 1,
  45.                     pot.params.param2 + 1,
  46.                     pot.params.param3 + 1,
  47.                     pot.params.param4 + 1);
  48.  
  49.             System.out.println("pot.initPot: " + pot.initPot.params.param1);
  50.             System.out.println("initPot: " + initPot.params.param1);
  51.         }
  52.     }
  53. }
  54.  
  55.  
  56. public class Pot implements Cloneable {
  57.  
  58.     PotParams params;
  59.     Pot initPot;
  60.  
  61.     public void init() {
  62.         params = new PotParams();
  63.     }
  64.  
  65.     public void setParams(double p1, double p2, double p3, double p4) {
  66.         params.param1 = p1;
  67.         params.param2 = p2;
  68.         params.param3 = p3;
  69.         params.param4 = p4;
  70.     }
  71.  
  72.     @Override
  73.     public Pot clone() throws CloneNotSupportedException {
  74.         return (Pot) super.clone();
  75.     }
  76. }
  77.  
  78.  
  79.  
  80. public class PotParams {
  81.  
  82.     public double param1;
  83.     public double param2;
  84.     public double param3;
  85.     public double param4;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement