JAVA 设计和实现一个学生类,满足以下要求: (1)学生具有学号、姓名、性别、年龄和专业等属性; (2)可以修改和获取年龄和专业等信息; (3)只能获取但不允许修改学生的姓名、性别和学号信息; (4)只能通过学号、姓名、性别三个参数产生学生对象; (5)学生年龄必须在[6-40]之间; (6)编写一个测试类,创建并输出一个学生的学号、姓名、性别、年龄和专业等信息。
时间: 2024-02-05 14:04:42 浏览: 138
好的,以下是Java语言的实现代码:
```java
public class Student {
private String number; // 学号
private String name; // 姓名
private String gender; // 性别
private int age; // 年龄
private String major; // 专业
public Student(String number, String name, String gender, int age, String major) {
this.number = number;
this.name = name;
this.gender = gender;
this.age = age;
this.major = major;
}
public String getNumber() {
return number;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 6 && age <= 40) {
this.age = age;
} else {
System.out.println("年龄不符合要求!");
}
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public static Student createStudent(String number, String name, String gender) {
int age = 18;
String major = "计算机科学";
return new Student(number, name, gender, age, major);
}
@Override
public String toString() {
return "学号:" + number + ",姓名:" + name + ",性别:" + gender + ",年龄:" + age + ",专业:" + major;
}
// 测试类
public static void main(String[] args) {
Student student = Student.createStudent("101", "张三", "男");
System.out.println(student);
student.setAge(20);
student.setMajor("物联网工程");
System.out.println(student);
}
}
```
在这个学生类中,我们使用了Java语言的封装特性。在类中,我们使用了private关键字修饰变量,使其成为类的私有属性,外部无法直接访问,只能通过类内部的方法进行访问和修改。这样做可以保证类的封装性和安全性。
在该类中,我们定义了一个静态方法`createStudent`,用于根据学号、姓名、性别创建一个学生对象,并将年龄默认设置为18,专业默认设置为计算机科学。同时,我们还定义了`setAge`和`setMajor`方法,用于修改学生对象的年龄和专业信息。
最后,在测试类中,我们创建一个学生对象并输出其信息。然后,我们通过`setAge`和`setMajor`方法修改学生对象的年龄和专业信息,并再次输出其信息,以验证修改是否成功。
阅读全文