第 6 单元:向一个 Java 类添加行为

测试您的理解情况

返回到第 6 单元

  1. 哪个答案最恰当地描述了 Java Beans 模式?
    1. 您可在其中使用 Java API 编写任何符合 Java 规范的应用程序。
    2. 它是一种编写代码的特定方式,规定了如何声明、访问和设置 Java 对象属性的值。
    3. JavaBeans 模式无法实际编码;它仅是一种理想标准。
    4. 上述选项都不是。
  2. 使用 invoke 调用方法与使用 call 调用方法有何区别?
    1. 使用 invoke 调用方法是编写方法的代码来使用 static 关键字。使用 call 调用方法仅适用于基于实例的对象。
    2. 使用 call 调用方法意味着全面地记录它,而使用 invoke 调用方法是通过 Java 源代码来完成。
    3. 没有区别;使用 call 和 invoke 调用方法都与 “执行方法” 同义。
    4. 只有在使用 Python 或 Ruby 编写代码时存在区别。
    5. 上述选项都不是
  3. 构造方法不是方法。
    1. 它依赖于编译器上下文。
    2. 有时是,但构造方法不能有参数。
  4. 编程问题:在 Person 上实现 toString() 方法。使用来自 第 4 单元 测验中的问题 5 的 Person 类代码。使用 Object.toString() 的 Javadoc 了解 toString() 将要执行的操作的描述。
    package com.makotojava.intro;
    
    public class Person {
       private String name;
       private int age;
       private int height;
       private int  weight;
       private String eyeColor;
       private String gender;
    
       public String getName() { return name; }
       public void setName(String value) { name = value; }
       // Other getter/setter combinations...
       public int getAge() { return age; }
       public void setAge(int value) { age = value; }
    
       public int getHeight() { return height; }
       public void setHeight(int value) { height = value; }
    
       public int getWeight() { return weight; }
       public void setWeight(int value) { weight = value; }
    
       public String getEyeColor() { return eyeColor; }
       public void setEyeColor(String value) { eyeColor = value; }
    
       public String getGender() { return gender; }
       public void setGender(String value) { gender = value; }
    
       public String toString() {
         String ret = "Name: " + getName() + ", " +
            "Height: " + getHeight() + ", " +
            "Weight: " + getWeight() + ", " +
            "Eye Color: " + getEyeColor() + ", " +
            "Gender: " + getGender();
    
         return ret;
       }
    }
  5. 编程问题:编写一个 JUnit 测试案例来测试问题 4 中的 Person 上的 toString() 方法。将您的测试方法添加到 第 5 单元 中创建的 PersonTest 类。
    package com.makotojava.intro;
    
    import static org.junit.Assert.*;
    
    import java.util.logging.Logger;
    
    import org.junit.Test;
    
    public class PersonTest {
    
        @Test
        public void testPerson() {
            .
            .
            .
        }
    
        @Test
        public void testToString() {
          Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
          
          Logger l = Logger.getLogger(PersonTest.class.getName());
          
          l.info("toString(): " + p.toString());
        }

返回到第 6 单元