# 问题和练习：类

> 原文： [https://docs.oracle.com/javase/tutorial/java/javaOO/QandE/creating-questions.html](https://docs.oracle.com/javase/tutorial/java/javaOO/QandE/creating-questions.html)

## 问题

1.  考虑以下类：

    ```
    public class IdentifyMyParts {
        public static int x = 7; 
        public int y = 3; 
    }

    ```

    1.  什么是类变量？

    2.  什么是实例变量？

    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);

        ```

## 演习

1.  写一个类，其实例代表一副纸牌中的一张扑克牌。扑克牌有两个显着特征：等级和套装。请务必保留您的解决方案，因为您将被要求在[枚举类型](enum-questions.html)中重写它。

    * * *

    **Hint:** 

    您可以使用`assert`语句检查分配。你写：

    ```
    assert (boolean expression to test); 

    ```

    如果布尔表达式为 false，则会收到错误消息。例如，

    ```
    assert toString(ACE) == "Ace";

    ```

    应返回`true`，因此不会出现错误信息。

    如果使用`assert`语句，则必须使用`ea`标志运行程序：

    ```
    java -ea YourProgram.class

    ```

    * * *

2.  写一个实例代表**完整**卡片组的类。你也应该保留这个解决方案。

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

[检查你的答案。](creating-answers.html)