Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改以获取Java SE 9及其后续版本中更新的语言功能的概述。
请参阅JDK发行说明以获取有关所有JDK发行版的新功能、增强功能和已删除或已弃用选项的信息。
考虑以下类:
public class IdentifyMyParts {
public static int x = 7;
public int y = 3;
}
问题:哪些是类变量?
答案:x
问题:哪些是实例变量?
答案:y
问题:以下代码的输出结果是什么:
IdentifyMyParts 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);
答案:以下是输出结果:
a.y = 5 b.y = 6 a.x = 2 b.x = 2 IdentifyMyParts.x = 2
因为 x 在类 IdentifyMyParts 中被定义为 public static int,所以对于 x 的每个引用都会有最后一次赋值的值,因为 x 是一个静态变量(因此是类变量),它被所有实例共享。也就是说,只有一个 x:当任何一个实例中的 x 值发生变化时,它会影响到所有 IdentifyMyParts 实例的 x 值。
这在 理解实例和类成员 的类变量部分有详细介绍。
练习:编写一个类,其实例代表一副纸牌中的一张牌。纸牌有两个特征:等级和花色。请确保保留您的解决方案,因为您将被要求在枚举类型中重新编写它。
答案:请查看 Card.java
。
练习:编写一个类,其实例代表一副完整的纸牌。请确保保留这个解决方案。
答案:请查看 Deck.java
。
练习:编写一个简单的程序来测试您的纸牌和牌组类。程序可以只是创建一副纸牌并显示其牌。
答案:请查看 DisplayDeck.java
。