title: Making a Ball class
body: <p>I am back with another question about my bouncing ball applet. I have to make a class for the balls so you can easily add more. The problem is: What do I put in my class? Just an x, a y and a radius or is there more to it? </p>
  
  <p>This is all of my code (with dutch comments, don't pay attention to them :))</p>
  
  <pre><code>import java.applet.*; 
  import java.awt.*; 
  import javax.swing.*;
  import javax.swing.event.*;
  
  public class BallApplet2 extends Applet implements Runnable 
  { 
    // de positie van de rode bal op de x-as en y-as en zijn straal
   int x_pos1 = 150; 
   int y_pos1 = 301;
   int radius1 = 20; 
   // de positie van de blauwe bal op de x-as en y-as en zijn straal
   int x_pos2 = 250; 
   int y_pos2 = 301; 
   int radius2 = 20;
  
   // de (willekeurige) snelheid van de rode bal wordt hier berekend
   int randomspeed1 = (int )(Math.random() * 7 + 2);
  
   // de (willekeurige) snelheid van de blauwe bal wordt hier berekend
   int randomspeed2 = (int )(Math.random() * 7 + 2);
  
   // het getal dat hierboven is berekend wordt toegewezen aan ballspeedx1
   private float ballspeedx1 = -randomspeed1;   
  
   // het getal dat hierboven is berekend wordt toegewezen aan ballspeedx2
   private float ballspeedx2 = randomspeed2;   
  
  
  
    public void init() {} 
  
    // de Thread wordt hier aangemaakt
    public void start() { 
    Thread th = new Thread (this); 
    th.start (); } 
    public void stop() {} 
    public void destroy() {} 
  
    // de Thread wordt hier uitgevoerd door de methode run()
    public void run () {
    //  de prioriteit van de Thread wordt verlaagd zodat hij niet nog een keer geactiveerd wordt  tijdens het uitvoeren
  Thread.currentThread().setPriority(Thread.MIN_PRIORITY); 
  while (true) 
  { 
    x_pos1 += ballspeedx1;
  
    x_pos2 += ballspeedx2;
  
  
    // repaint() update de positie van de ballen
    repaint();
    // als x_pos &lt; 100 is draait de richting van de bal om
    if (x_pos1  &lt; 100) {
      ballspeedx1 = -ballspeedx1; 
      x_pos1 = 100; 
    } 
    if (x_pos2  &lt; 100) {
      ballspeedx2 = -ballspeedx2; 
      x_pos2 = 100; 
    }  
    // als x_pos &gt; 300 is draait de richting van de bal om
    if (x_pos1  &gt; 300) {
      ballspeedx1 = -ballspeedx1; 
      x_pos1 = 300; 
    } 
    if (x_pos2  &gt; 300) {
      ballspeedx2 = -ballspeedx2; 
      x_pos2 = 300; 
    }
    // als de positie van de blauwe bal (x_pos2) - de positie van de rode bal (x_pos1) kleiner is 
    // dan de som van de stralen van de rode en de blauwe bal draaien beide ballen om.                                     
    if (Math.abs(x_pos2-x_pos1)&lt;radius1+radius2){
      ballspeedx1 = -ballspeedx1;
      ballspeedx2 = -ballspeedx2;
    }
  
    try { Thread.sleep (20); } 
  
  
  
    catch (InterruptedException ex) {} 
  
  Thread.currentThread().setPriority(Thread.MAX_PRIORITY); }} 
  
   public void paint (Graphics g) {
  
  
  // de rode bal
  g.setColor (Color.red); 
  g.fillOval (x_pos1 - radius1, y_pos1 - radius1, 2 * radius1, 2 * radius1); 
  
  // de blauwe bal
  g.setColor (Color.blue); 
  g.fillOval (x_pos2 - radius2, y_pos2 - radius2, 2 * radius2, 2 * radius2); 
  
  
  g.setColor(Color.black);
  g.drawLine(80,280,80,320); // lijn links
  g.drawLine(320,280,320,320); // lijn rechts
  g.drawLine(80,320,320,320); // lijn onder
  
  
  
   }  
    } 
  </code></pre>