?? cardhand.java
字號:
/* CardHand.java - an example to show the differences among * reference copy, shallow copy, and deep copy. * Copyright (c) 2001, Bruce E. Wampler */public class CardHand implements Cloneable{ private Card c1; // A CardHand has 2 cards private Card c2; public CardHand(Card cd1, Card cd2) { c1 = cd1; c2 = cd2; } public String toString() { return "c1:" + c1 + ","+" c2:" + c2; }// **** UNCOMMENT the clone method for SHALLOW and DEEP COPY// // override Object.clone()// public Object clone() throws CloneNotSupportedException// {// // To clone, first shallow clone whole object.// CardHand c = (CardHand) super.clone();// // **** UNCOMMENT next THREE line for DEEP COPY ONLY// // // now clone the deep parts// // c.c1 = (Card) c1.clone();// // c.c2 = (Card) c2.clone();// return c;// } static void main(String args[]) throws CloneNotSupportedException { Card newCard = new Card(Card.HEART,7); CardHand origHand = new CardHand(new Card(Card.SPADE, 1), new Card(Card.SPADE, 13));// **** UNCOMMENT next 3 lines for copy by reference **** CardHand saveHand = origHand; System.out.println("\n**** REFERENCE COPY ****\n\n" + "BEFORE: saveHand = origHand; :\n"// **** UNCOMMENT next 3 lines for SHALLOW COPY ****// CardHand saveHand = (CardHand) origHand.clone();// System.out.println("\n**** SHALLOW COPY ****\n\n"// + "BEFORE: saveHand = origHand.clone(); :\n"// **** UNCOMMENT next 3 lines for DEEP COPY version ****// CardHand saveHand = (CardHand) origHand.clone();// System.out.println("\n**** DEEP COPY ****\n\n"// + "BEFORE: saveHand = origHand.clone(); :\n" + "\n origHand is " + origHand + "\n saveHand is " + saveHand + "\n newCard is " + newCard + "\n"); origHand.c1 = newCard; origHand.c2.setCard(Card.DIAMOND,4); newCard.setCard(Card.CLUB, 2); System.out.println( "AFTER: origHand.c1 = newCard;\n" + " origHand.c2.setCard(DIAMOND,4);\n" + " newCard.setCard(CLUB,2); :\n" + "\n origHand is " + origHand + "\n saveHand is " + saveHand + "\n newCard is " + newCard + "\n"); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -