类:问题与练习
问题
观察下面的类:
1234public class IdentifyMyParts {public static int x = 7;public int y = 3;}问题: 哪一个是类变量?
问题:哪一个是实例变量?
问题: 以下代码的输出内容是什么:
1234567891011IdentifyMyParts a = new IdentifyMyParts();IdentifyMyParts b = new IdentifyMyParts();a.y = 5;b.y = 6;a.x = 1;b.x = 2;System.out.println("a.y = " + a.y);System.out.println("b.y = " + b.y);System.out.println("a.x = " + a.x);System.out.println("b.x = " + b.x);System.out.println("IdentifyMyParts.x = " + IdentifyMyParts.x);
练习
- 练习: 写一个类,类的每一个实例代表了一副牌中的一张。没一张牌有两个属性:点数与花色。保留你的解决方案,在 Enum Types 枚举类一节中会要求你重写这个类.
- 练习: 写一个类,类的每一个实例代表一整副扑克。同样保留这个类。
- 练习:写一个小程序来测试你的单长牌与扑克类。可以简单的创建一副扑克并展示它其中的每一张牌。
答案
问题答案
观察下面的类:
1234public class IdentifyMyParts {public static int x = 7;public int y = 3;}问题: 哪一个是类变量?
答案: x
问题:哪一个是实例变量?
答案: y
问题: 以下代码的输出内容是什么:
1234567891011IdentifyMyParts a = new IdentifyMyParts();IdentifyMyParts b = new IdentifyMyParts();a.y = 5;b.y = 6;a.x = 1;b.x = 2;System.out.println("a.y = " + a.y);System.out.println("b.y = " + b.y);System.out.println("a.x = " + a.x);System.out.println("b.x = " + b.x);System.out.println("IdentifyMyParts.x = " + IdentifyMyParts.x);答案: 输出如下:
12345a.y = 5b.y = 6a.x = 2b.x = 2IdentifyMyParts.x = 2因为
x
的在类IdentifyMyParts
中的定义为public static int
。每一个指向x
的引用都有最后赋给x
的值,因为x
是一个静态变量(或者说类变量),为所有类的实例所共享。也就是说只有一个x
: 当x
的值在任何实例中发生改变就会影响所有IdentifyMyParts
类的实例的x
值.在理解类与实例的成员一节中包含了这些内容 Understanding Instance and Class Members.
练习答案
练习: 写一个类,类的每一个实例代表了一副牌中的一张。没一张牌有两个属性:点数与花色。保留你的解决方案,在 Enum Types 枚举类一节中会要求你重写这个类.
答案:
Card.java
.练习: 写一个类,类的每一个实例代表一整副扑克。同样保留这个类。
答案:
Deck.java
.练习:写一个小程序来测试你的单长牌与扑克类。可以简单的创建一副扑克并展示它其中的每一张牌。
答案:
DisplayDeck.java
.