定义测试类,在main方法中创建Student对象,并给所有属性赋值,验证printInfo()的执行结果。
时间: 2024-11-18 17:18:59 浏览: 8
为了测试`Student`类,我们可以定义一个名为`TestStudent`的测试类,如下所示:
```java
import org.junit.Test;
public class TestStudent {
@Test
public void testStudent() {
// 创建一个Student对象并初始化属性
Student student1 = new Student("计算机科学学院", "软件工程", 1001);
// 调用printInfo()方法
student1.printInfo();
// 验证打印信息是否正确
assertEquals("学生信息:\n学院: 计算机科学学院\n专业: 软件工程\n学号: 1001", student1.printInfo().toString());
}
}
```
在上述测试类中,`testStudent()`方法创建了一个`Student`对象,设置了所有属性,并调用了`printInfo()`方法。然后,我们使用`assertEquals`来检查`printInfo()`方法返回的字符串是否与预期一致。
运行这个测试类的`main`方法将无法直接执行,因为JUnit测试通常是在IDE或测试工具中作为独立的部分运行的。如果你想要看到打印的结果,可以在实际应用中执行`student1.printInfo();`这部分。
相关问题
子类Student类继承父类、并重写父类的printInfo(),使得子类的printInfo()能够返回所有属性信息,包括从父类中继承的属性。再定义测试类,在main方法中创建Student对象,验证Student类中重写的printInfo()的正确性。
在面向对象编程中,比如在Java中,如果有一个父类`Person`,包含了一些通用属性如姓名和年龄,我们可以通过创建一个新的子类`Student`来继承这些属性,并添加特有的属性,例如学号或专业。为了体现多态,子类可以重写父类的方法,如`printInfo()`。
首先,让我们定义一下`Person`类:
```java
public class Person {
private String name;
private int age;
// 构造函数、getter和setter省略
public void printInfo() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
```
然后,我们将`Student`类继承自`Person`,并重写`printInfo()`方法:
```java
public class Student extends Person {
private String studentId;
private String major;
// 构造函数、getter和setter省略
@Override
public void printInfo() {
super.printInfo();
System.out.println("Student ID: " + studentId + ", Major: " + major);
}
}
```
接下来,我们创建一个测试类`Test`,并在`main`方法中创建`Student`对象,并验证`printInfo()`的正确性:
```java
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
student.setAge(20);
student.setStudentId("123456");
student.setMajor("计算机科学");
student.printInfo(); // 这将打印出Person的信息以及Student特有的信息
}
}
```
当你运行这个`Test`类,会看到输出结果类似这样的内容:
```
Name: 张三, Age: 20
Student ID: 123456, Major: 计算机科学
```
这就展示了多态性的应用,即通过子类重写父类的方法,实现了特定情况下的行为变化。
定义学生类Student,属性包括姓名(String) 、学号(int)、班级(String)和记录Student对象个数的静态属性count(int),编写一个方法,实现输出一位学生的基本信息的功能,定义无参和有参构造方法对属性进行赋值,利用this实现无参构造方法调用有参构造方法。编写测试类使用Student类创建2个Student类对象,使用构造方法给属性赋值,调用对象的方法输出学生的基本信息,并输出静态属性count的值。
好的,这是一个关于Java编程的问题。以下是一个基本的Student类的定义,同时包括问题中要求的所有其他信息:
```
public class Student {
String name;
int studentNumber;
String className;
static int count;
public Student() {
this("Default Name", 0, "Default Class");
}
public Student(String name, int studentNumber, String className) {
this.name = name;
this.studentNumber = studentNumber;
this.className = className;
count++;
}
public void printInfo() {
System.out.println("Name: " + name);
System.out.println("Student Number: " + studentNumber);
System.out.println("Class Name: " + className);
}
public static void main(String[] args) {
Student s1 = new Student("Lucas", 12345, "Class A");
Student s2 = new Student("Maria", 54321, "Class B");
s1.printInfo();
System.out.println("Number of Students: " + count);
s2.printInfo();
System.out.println("Number of Students: " + count);
}
}
```
在上述代码中,我们定义了一个Student类,其中包括姓名、学号、班级和记录学生数量的静态属性。同时,我们还定义了两个构造方法,一个无参构造方法和一个有参构造方法,其中后者使用this关键字调用了前者。最后,我们定义了一个printInfo方法,用于输出学生信息。在main方法中,我们创建了两个Student对象并使用构造方法给其属性赋值,然后调用其printInfo方法输出学生信息。同时,我们还输出了静态属性count的值。
希望这个回答对您有所帮助!
阅读全文