自定义Student类,学生有姓名、年龄、性别、专业和国家等属性,有考试、做实验和介绍等方法,请用封装的思想实现。同时将国家定义为static 属性,将做实验定义为静态方法。
时间: 2024-10-24 19:08:36 浏览: 48
自定义一个名为`Student`的类,我们可以按照面向对象编程的原则,使用封装思想来设计这个类。首先,我们创建私有变量分别表示学生的属性,如姓名(name)、年龄(age)、性别(gender)、专业(major)和国家(country),这些都是需要保护的数据,所以我们将它们声明为private。
```java
public class Student {
// 封装国家信息为静态属性
private static String country;
// 学生属性,私有化
private String name;
private int age;
private String gender;
private String major;
// 构造函数用于初始化
public Student(String name, int age, String gender, String major, String country) {
this.name = name;
this.age = age;
this.gender = gender;
this.major = major;
Student.country = country; // 国家作为静态属性,通过类名访问
}
// 提供getter和setter方法,保证数据的封装
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
// 静态方法做实验
public static void doExperiment() {
System.out.println("正在做实验...");
}
// 考试方法,体现多态性,每个学生有自己的成绩计算方式
public abstract double takeExam();
// 介绍自己
public void introduce() {
System.out.println("我是来自" + Student.country + "的" + this.getName() + ",今年" + this.getAge() +
"岁,主修" + this.getMajor());
}
}
```
在这个类中,`doExperiment()`是一个静态方法,所有学生都可以共享这个实验操作。`takeExam()`方法被声明为抽象方法,因为每个学生可能有不同的考试规则,具体的评分逻辑由子类来实现。
阅读全文