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