Classes
1 / 36
Classes 1 / 36 Classes Classes 2 / 36 Anatomy of a Class By the - - PowerPoint PPT Presentation
Classes 1 / 36 Classes Classes 2 / 36 Anatomy of a Class By the end of next lecture, youll understand everything in this class definition. package edu.gatech.cs1331.card; import java.util.Arrays; public class Card { public static
1 / 36
2 / 36
package edu.gatech.cs1331.card; import java.util.Arrays; public class Card { public static final String [] VALID_RANKS = {"2", ... , "ace"}; public static final String [] VALID_SUITS = {"diamonds", ... }; private String rank; private String suit; public Card(String aRank , String aSuit) { // ... } public String toString () { return rank + " of " + suit; } private boolean isValidRank (String someRank) { ... } }
3 / 36
cd cs1331 git clone https :// gitlab.com/cs1331/card.git cd card
git checkout v0.0
1Semantic Versioning
4 / 36
public class Card { String rank; String suit; }
5 / 36
git checkout v0.1
public class Card { String rank; String suit; public static void main(String [] args) { Card c = new Card (); System.out.println(c); } }
6 / 36
public class Card { String rank; String suit; public String toString () { return rank + " of " + suit; } public static void main(String [] args) { Card swedishPop = new Card (); swedishPop .rank = "ace"; swedishPop .suit = "base"; Card handy = new Card (); handy.rank = "jack"; handy.suit = "all trades"; System.out.println(swedishPop); System.out.println(handy); } }
7 / 36
public class Card { private String rank; private String suit; public String toString () { return rank + " of " + suit; } public static void main(String [] args) { Card c = new Card (); c.rank = "ace"; c.suit = "base"; System.out.println(c); } }
8 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card (); c.rank = "ace"; c.suit = "base"; System.out.println(c); } }
9 / 36
public class Card { private String rank; private String suit; public void setRank(String rank) { rank = rank; } public void setSuit(String suit) { suit = suit; } }
10 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card (); c.setRank("ace"); c.setSuit("base"); System.out.println(c); } }
11 / 36
public void setRank(String rank) { rank = rank; } public void setSuit(String suit) { suit = suit; }
12 / 36
public class Card { private String rank; private String suit; public void setRank(String rank) { this.rank = rank; } public void setSuit(String suit) { this.suit = suit; } }
13 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card (); c.setRank("ace"); c.setSuit("base"); System.out.println(c); } }
14 / 36
15 / 36
public class Card { private final String [] VALID_RANKS = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; public void setRank(String rank) { if (! isValidRank (rank)) { System.out.println(rank + " is not a valid rank."); System.exit (0); } this.rank = rank; } private boolean isValidRank (String someRank) { return contains(VALID_RANKS , someRank); } private boolean contains(String [] array , String item) { for (String element: array) { if (element.equals(item)) { return true; } } return false; } // ... }
16 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card (); c.setRank("ace"); c.setSuit("base"); System.out.println(c); } }
$ java Dealer base is not a valid suit.
17 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card (); c.setRank("ace"); c.setSuit("spades"); System.out.println(c); } }
18 / 36
public class Dealer5 { public static void main(String [] args) { Card c = new Card (); System.out.println(c); // Printing a new Card instance c.setRank("ace"); c.setSuit("base"); System.out.println(c); } }
19 / 36
public class Card { private String rank = "2"; // ... }
public class Card { public Card () { rank = "2"; } // ... }
20 / 36
21 / 36
22 / 36
public class Card { // ... public Card(String rank , String suit) { setRank(rank); setSuit(suit); } // ... }
23 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card (); // ... } } $ javac Dealer.java Dealer.java :4: error: constructor Card in class Card cannot be applied to given types; Card c = new Card (); ^ required: String ,String found: no arguments reason: actual and formal argument lists differ in length 1 error
24 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card("queen", "hearts"); System.out.println(c); } }
25 / 36
26 / 36
27 / 36
public final String [] VALID_RANKS = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; public final String [] VALID_SUITS = {"diamonds", "clubs", "hearts","spades"};
28 / 36
public static final String [] VALID_RANKS = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "jack", "queen", "king", "ace"}; public static final String [] VALID_SUITS = {"diamonds", "clubs", "hearts","spades"};
29 / 36
public class Dealer { public static void main(String [] args) { Card c = new Card("queen", "hearts"); System.out.println(c); c.setRank("jack"); // modifying c System.out.println(c); } }
30 / 36
public Card(String aRank , String aSuit) { // constructor if (! isValidRank (rank)) { System.out.println(aRank + " is not a valid rank."); System.exit (0); } rank = aRank; if (! isValidSuit (aSuit)) { System.out.println(aSuit + " is not a valid suit."); System.exit (0); } suit = aSuit; }
31 / 36
git checkout master
32 / 36
public enum Rank { TWO , THREE , FOUR , FIVE , SIX , SEVEN , EIGHT , NINE , TEN , JACK , QUEEN , KING , ACE } public enum Rank { TWO , THREE , FOUR , FIVE , SIX , SEVEN , EIGHT , NINE , TEN , JACK , QUEEN , KING , ACE }
public class Card { private Rank rank; private Suit suit; public Card(Rank aRank , Suit aSuit) { rank = aRank; suit = aSuit; } ... }
33 / 36
public class Card { private Rank rank; private Suit suit; public Card(Rank aRank , Suit aSuit) { rank = aRank; suit = aSuit; } public String toString () { return rank + " of " + suit; } public boolean equals(Object
if (null == other) { return false; } if (this == other) { return true; } if (!( other instanceof Card)) { return false; } Card that = (Card) other; return this.rank.equals(that.rank) && this.suit.equals(that.suit); } }
34 / 36
Card c1 = new Card(Rank.ACE , Suit.SPADES); Card c2 = new Card(Rank.ACE , Suit.SPADES); Card c3 = c1; System.out.println("c1 == c2 returns " + (c1 == c2)); System.out.println("c1.equals(c2) returns " + c1.equals(c2)); System.out.println("c1 == c3 returns " + (c1 == c3)); System.out.println("c1.equals(c3) returns " + c1.equals(c3));
c1 == c2 returns false c1.equals(c2) returns true c1 == c3 returns true c1.equals(c3) returns true
35 / 36
36 / 36