上一节单元测试的答案:
1. c 2. b 3. b 4. d
5.
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;
}
}
6.b 7.c
在Eclipse中创建和测试一个java类
更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217
你将创建你的第一个java类并使用它来工作 —— 到目前为止,你已经抽象出一个Person类了(如果你读过了前面几节的话)。
首先,你得安装JDK和IDE(这里我们使用的是Eclipse),请参看第一节搭建开发环境的图文内容
打开你的Eclipse,解压下载的zip文件,执行其中的eclipse.exe文件,在弹出的界面中选择一个Workspace工作空间,指定一个目录(文件夹),笔者指定的是E:\eclipseWorkspace4JavaBasic。
打开Eclipse后进入到欢迎页面,你有兴趣的话可以看看这些内容
大都选择可以直接关闭欢迎页面进入到工作界面
因为我下载的是JAVA EE版本Eclipse,所以这样创建一个java工程:File–>New–>Project–>再选则Java Project
指定工程名,这里我们不妨指定为javaBasic,点击Finish完成,至此一个java工程创建完毕了。
右键点击工程 javaBasic> New > Package,包名不妨指定为com.makotojava.intro ,点击完成。
右键点击刚刚创建的包>New->Class,类名我们先叫Person,点击完成。
在你编写更多代码之前,你应该知道让你的程序告诉你它做了什么。
java类库中有一个java.util.logging的包,内建了一种日志机制可以以一种可读形式来搜集程序的相关信息。日志记录器是命名的实体,你可以调用Logger的静态发方法创建。
//不必手动输入,你可以在程序中输入Logger后按住Ctrl+Shift+O来自动导入该包
import java.util.logging.Logger;
//...
Logger l = Logger.getLogger(getClass().getName());
调用Logger的getLogger方法需要传入一个字符串。这里我们传入Person类的名字,需要使用Person.class.getName()
package com.makotojava.intro;
import java.util.logging.Logger;
public class Person {
private static Logger log = Logger.getLogger(Person.class.getName());
}
在上一节中,你看到了怎样充实一个Person类,但是我在之前没有解释更多的语法。现在你可以学会正是地怎样去添加一些成员变量(属性)了。
为了方便起见,Listing1先重复展示上一节中你看到的Person类:
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 Person() {
// Nothing to do...
}
public Person(String name, int age, int height, int weight String eyeColor, String gender) {
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
this.eyeColor = eyeColor;
this.gender = gender;
}
}
我们回顾一下,一个变量包含访问控制修饰符、数据类型和变量名,也可能指定初始值。上一节中,我们看到了怎样定义访问控制修饰符和变量名。
数据类型可以使原始数据类型或者引用类型。举个例子,age就是原始数据类型(int),name是引用类型(String)。JDK封装了很多可用的类比如java.langString在java.lang包下,使用时可以不用显式的import。
Table 1展示了8种基本类型,并且给出了默认的初始值,如果这些类型的变量你没有指定初始值的话。
Type数据类型 | Size字节大小 | Default value默认值 | Range of values表示的范围 |
---|---|---|---|
boolean | n/a | false | true or false |
byte | 8 bits | 0 | -128 to 127 |
char | 16 bits | (unsigned) | \u0000’ \u0000’ to \uffff’ or 0 to 65535 |
short | 16 bits | 0 | -32768 to 32767 |
int | 32 bits | 0 | -2147483648 to 2147483647 |
long | 64 bits | 0 | -9223372036854775808 to 9223372036854775807 |
float | 32 bits | 0.0 | 1.17549435e-38 to 3.4028235e+38 |
double | 64 bits | 0.0 | 4.9e-324 to 1.7976931348623157e+308 |
截止到目前我们的类是这样的:
package com.makotojava.intro;
import java.util.logging.Logger;
public class Person {
//日志记录器
private static Logger log = Logger.getLogger(Person.class.getName());
private String name;
private int age;
private int height;
private int weight;
private String eyeColor;
private String gender;
}
现在来添加getter、setter方法。右键点击类名-> Source > Generate Getters and Setters….选择Select All,点击OK;或者Shift+Alt-> Generate Getters and Setters….选择Select All,点击OK。
现在我们再添加一个无参构造器,右键点击类名-> Source 或者Shift+Alt选择Generate Contrustor from SuperClasse…
我们再添加一个包含所有属性参数的构造器,右键点击类名-> Source 或者Shift+Alt选择Generate Contrustor using Fields…选择Select All,点击OK。
再添加一个main方法。可以输入main后按住Alt+/提示生成main方法。
至此我们的Person类应该是这样子的:
package com.makotojava.intro;
import java.util.logging.Logger;
public class Person {
//日志记录器
private static Logger log = Logger.getLogger(Person.class.getName());
//成员变量(属性)
private String name;
private int age;
private int height;
private int weight;
private String eyeColor;
private String gender;
//空构造器
public Person() {
super();
// TODO Auto-generated constructor stub
}
//包含所有属性的构造器
public Person(String name, int age, int height, int weight, String eyeColor, String gender) {
super();
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
this.eyeColor = eyeColor;
this.gender = gender;
}
//Getter、Setter方法
public static Logger getLog() {
return log;
}
public static void setLog(Logger log) {
Person.log = log;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public String getEyeColor() {
return eyeColor;
}
public void setEyeColor(String eyeColor) {
this.eyeColor = eyeColor;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
//main方法
public static void main(String[] args) {
}
}
当你实例化一个Person对象的时候,你可以生成一个JUnit单元测试用例,打印对象的状态到控制台。
从这个意义上讲,这个测试用例确保调用构造器和属性是正确的。
在Package Explorer视图中,右键点击Person类->New > java->JUint->JUnit Test Case,使用默认的,点击next。你可以选择勾选某几个方法测试,这里我们只测试一下包含所有属性参数的构造器,点击Finish会提示你添加一个JUnit测试包,点击OK。
在测试类里添加如下代码:
package com.makotojava.intro;
import static org.junit.Assert.assertEquals;
import java.util.logging.Logger;
import org.junit.Test;
public class PersonTest {
@Test
public void testPersonStringIntIntIntStringString() {
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
Logger l = Logger.getLogger(Person.class.getName());
l.info("Name: " + p.getName());
l.info("Age:" + p.getAge());
l.info("Height (cm):" + p.getHeight());
l.info("Weight (kg):" + p.getWeight());
l.info("Eye Color:" + p.getEyeColor());
l.info("Gender:" + p.getGender());
assertEquals("Joe Q Author", p.getName());
assertEquals(42, p.getAge());
assertEquals(173, p.getHeight());
assertEquals(82, p.getWeight());
assertEquals("Brown", p.getEyeColor());
assertEquals("MALE", p.getGender());
}
}
在Package Explorer视图中,右键点击PersonTest->Run AS->JUint Test。