import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.objectinputstream;
import java.io.objectoutputstream;
import java.io.serializable;
public class cardreader {
public static void main(string[] args) {
card3 card = new card3(12, card3.spades);
system.out.println("card to write is: " + card);
try {
fileoutputstream out = new fileoutputstream("card.out");
objectoutputstream oos = new objectoutputstream(out);
oos.writeobject(card);
oos.flush();
} catch (exception e) {
system.out.println("problem serializing: " + e);
}
card3 acard = null;
try {
fileinputstream in = new fileinputstream("card.out");
objectinputstream ois = new objectinputstream(in);
acard = (card3) (ois.readobject());
} catch (exception e) {
system.out.println("problem serializing: " + e);
}
system.out.println("card read is: " + acard);
}
}
class card3 implements serializable {
private int suit = unassigned;
private int number = unassigned;
public final static int unassigned = -1;
public final static int diamonds = 1;
public final static int clubs = 2;
public final static int hearts = 3;
public final static int spades = 4;
public final static int ace = 1;
public final static int king = 13;
public card3(int number, int suit) {
if (isvalidnumber(number)) {
this.number = number;
} else {
//error
}
if (isvalidsuit(suit)) {
this.suit = suit;
} else {
//error
}
}
public int getsuit() {
return suit;
}
public int getnumber() {
return number;
}
public static boolean isvalidnumber(int number) {
if (number >= ace && number <= king) {
return true;
} else {
return false;
}
}
public static boolean isvalidsuit(int suit) {
if (suit >= diamonds && suit <= spades) {
return true;
} else {
return false;
}
}
public boolean equals(object obj) {
if (obj instanceof card3) {
card3 card = (card3) obj;
if (card.getnumber() == this.number && card.getsuit() == this.suit) {
return true;
} else {
return false;
}
} else {
return false;
}
}
public int hashcode() {
return number * suit;
}
public string tostring() {
return numbertostring(this.number) + " of " + suittostring(this.suit);
}
public static string numbertostring(int number) {
string result = "";
switch (number) {
case ace:
result = "ace";
break;
case 2:
result = "two";
break;
case 3:
result = "three";
break;
case 4:
result = "four";
break;
case 5:
result = "five";
break;
case 6:
result = "six";
break;
case 7:
result = "seven";
break;
case 8:
result = "eight";
break;
case 9:
result = "nine";
break;
case 10:
result = "ten";
break;
case 11:
result = "jack";
break;
case 12:
result = "queen";
break;
case king:
result = "king";
break;
case unassigned:
result = "invalid number";
break;
}
return result;
}
public static string suittostring(int suit) {
string result = "";
switch (suit) {
case diamonds:
result = "diamonds";
break;
case clubs:
result = "clubs";
break;
case hearts:
result = "hearts";
break;
case spades:
result = "spades";
break;
case unassigned:
result = "invalid suit";
break;
}
return result;
}
}
闽公网安备 35060202000074号