创建student(学号,姓名,数学。英语),并定义张三、李四两 位学生信息,查询显示他们数学的成绩。(提交程序代码及运行 截图)java依赖注入方法
时间: 2024-10-19 07:16:43 浏览: 27
java代码-【3】定义一个学生类,使用LinkedList对学生类进行管理,执行添加操作,并打印数据。 运行效果图为: 任务: 1.定义一个学生类Student (1)属性为:学号stuId(int),姓名name(String),成绩score(float) (2)方法为:构造方法,getter和setter方法,toString方法 2.定义三个Student类的对象,添加到LinkedList中 3.显示LinkedList中元素的内容
在Java中创建Student类,并利用依赖注入(Dependency Injection)来实例化和操作学生的数据,我们可以这样做:
首先,定义一个`Student`类,包含学号、姓名和两个成绩属性:
```java
public class Student {
private int id;
private String name;
private double mathScore;
private double englishScore;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
// getters and setters
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public double getMathScore() { return mathScore; }
public void setMathScore(double mathScore) { this.mathScore = mathScore; }
}
```
然后,为了演示依赖注入,我们创建一个简单的`StudentRepository`接口和其实现类:
```java
import java.util.List;
public interface StudentRepository {
List<Student> getAllStudents();
Student findStudentById(int id);
}
public class SimpleStudentRepository implements StudentRepository {
private List<Student> students = ... // 假设已初始化了学生列表
@Override
public List<Student> getAllStudents() {
return students;
}
@Override
public Student findStudentById(int id) {
for (Student student : students) {
if (student.getId() == id) {
return student;
}
}
throw new IllegalArgumentException("Student not found with id: " + id);
}
}
```
现在你可以通过`Spring`等依赖注入框架来获取`StudentRepository`,并在主程序中查询并打印张三和李四的数学成绩:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Main {
private final StudentRepository repository;
@Autowired
public Main(StudentRepository repository) {
this.repository = repository;
}
public void displayMathScores() {
Student zhangSan = repository.findStudentById(1); // 张三的学号1
Student liSi = repository.findStudentById(2); // 李四的学号2
System.out.println("张三的数学成绩: " + zhangSan.getMathScore());
System.out.println("李四的数学成绩: " + liSi.getMathScore());
}
public static void main(String[] args) {
Main main = new Main(new SimpleStudentRepository()); // 使用示例仓库
main.displayMathScores();
}
}
```
请注意,实际项目中通常不会直接在`main`方法中注入,而是会有一个配置文件和容器自动管理依赖。运行这个例子时,你需要一个包含所有学生数据的列表。
阅读全文