文档

Java™ 教程-Java Tutorials 中文版
Trail: Learning the Java Language
Lesson: Classes and Objects
主页>学习 Java 语言>类和对象

问题和练习的答案:类

问题

  1. 考虑以下类:

    public class IdentifyMyParts {
        public static int x = 7;
        public int y = 3;
    } 
    
    1. 问题:什么是类变量?

      答案:x

    2. 问题:什么是实例变量?

      答案:y

    3. 问题:以下代码的输出是什么:

      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 的值。

      这包含在 Understanding Instance and Class Members 的类变量部分中。

练习

  1. Exercise:写一个类,其实例代表一副牌中的单张扑克牌。扑克牌有两个显着属性:大小和花色。请务必保留你的解决方案,因为你将被要求在 Enum Types 中重写它。

    答案:Card.java(in a .java source file).

  2. Exercise:编写一个实例代表 full 卡片组的类。你也应该保留此解决方案。

    答案:See Deck.java(in a .java source file).

  3. Exercise:编写一个小程序来测试你的套牌和卡片类。该程序可以像创建一副牌并显示其卡一样简单。

    答案:See DisplayDeck.java(in a .java source file).


Previous page: Questions and Exercises: Classes