title: Java - Making a card game, have questions about classes
body: <p>I'm a (mostly) self taught programmer with one java class under my belt so I'm still very new to this and I'm trying to make my first real app from scratch.</p>
  
  <p>Basically, I'm making an app version of a card game I own (just for me! Not to sell or anything!) and in this card game you basically use your starter cards to "buy" more cards from a lineup of cards drawn from the main deck. These cards have several values associated with them that would translate well to an app like "power level" and "point value," and in addition each of these cards does something special when you play it like "draw an extra card" or "destroy a card" or "give another player a negative card" - that type of thing.</p>
  
  <p>I've already made the whole UI for the game, and have that (mostly) done, and now I'm working on the meat and potatoes of it all - the code. I've made a constructor class named Card that looks like this: </p>
  
  <pre><code>public class Card 
  {
  private int power;
  private int value;
  private String type;
  private String cardName;
  private ImageIcon image;
  
      public Card(int power, int value, String type, String cardName, ImageIcon image)
      {
          this.power = power;
          this.value = value;
          this.type = type;
          this.cardName = cardName;
          this.image = image;
      }
  ...
  }
  </code></pre>
  
  <p>With the ellipses representing all my getter/setter methods.</p>
  
  <p>So you can see that my Card class will assigns all the necessary values to them but one - the special "thing" that each of them do (draw card/destroy card..etc)</p>
  
  <p>I'm not sure where/how I should put that in my code. Since the I have a type value that will represent the different types of cards you can draw (equipment/super power/hero/etc..) I'm thinking I should make a separate class for each card type..is this good coding practice? </p>
  
  <p>So to conclude this extremely lengthy post, in summary - should I separate out all my different card "types" into different classes and how should I implement that special "thing" that each card does? I feel like it will be wrapped in a method, but as far as I know, I can't have a method be a part of a constructor, can I?</p>