## 1、编写并测试 Subject 类
```
public class Subject {
private String name; // 学科名称
private String code; // 学科编号
private int year; // 学制年限
public Subject() {}
public Subject(String name, String code, int age) {
this.setName(name);
this.setCode(code);
this.setAge(age);
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public int getYear() {
return this.year;
}
public void setYear(int year) {
this.year = year;
}
public void info() {
System.out.println("专业信息如下:");
System.out.println("专业名称:" + this.getName());
System.out.println("专业编号:" + this.getCode());
System.out.println("学制年限:" + this.getYear() + "年");
}
}
```
## 2、编写并测试 Student 类
```
public class Student {
private String code; // 学号
private String name; // 姓名
private String gender; // 性别
private int age; // 年龄
public Student() {}
public Student(String code, String name, String gender, int age) {
this.setCode(code);
this.setName(name);
this.setGender(gender);
this.setAge(age);
}
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return this.gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public void introduction() {
System.out.println("学生信息如下:");
System.out.println("姓名:" + this.getName());
System.out.println("学号:" + this.getCode());
System.out.println("性别:" + this.getGender());
System.out.println("年龄:" + this.getAge());
}
}
```
## 3、通过方法实现学生与专业关联
* 方式一
```
public class Student {
public void introduction(String name, int year) {
System.out.println("学生信息如下:");
System.out.println("姓名:" + this.getName());
System.out.println("学号:" + this.getCode());
System.out.println("性别:" + this.getGender());
System.out.println("年龄:" + this.getAge());
System.out.println("所报专业名称:" + name);
System.out.println("学制年限:" + year + "年");
}
}
```
* 方式二
```
public class Student {
public void introduction(Subject subject) {
System.out.println("学生信息如下:");
System.out.println("姓名:" + this.getName());
System.out.println("学号:" + this.getCode());
System.out.println("性别:" + this.getGender());
System.out.println("年龄:" + this.getAge());
System.out.println(subject);
}
}
```
* 方式三
```
public class Student {
// ...
private Subject subject;
public Subject getSubject() {
return subject;
}
public void setSubject(Subject subject) {
this.subject = subject;
}
public void introduction() {
System.out.println("学生信息如下:");
System.out.println("姓名:" + this.getName());
System.out.println("学号:" + this.getCode());
System.out.println("性别:" + this.getGender());
System.out.println("年龄:" + this.getAge());
System.out.println(this.getSubject());
}
}
```
## 4、完成学生信息存储
```
public class Subject {
private Student[] students = new Student[200]; // 报名选修的学生信息
private int count; // 报名选修的学生个数
public Subject(String name, String code, int age, Student[] students) {
this.setName(name);
this.setCode(code);
this.setAge(age);
this.setStudents(students);
}
public Student[] getStudents() {
return this.students;
}
public void setStudents(Student[] students) {
this.students = students;
}
public int getCount() {
return this.count;
}
public void setCount(int count) {
this.count = count;
}
/**
* 专业添加学生的同时需要给学生设置专业属性
*/
public void addStudent(Student student) {
for (int i = 0; i < this.getStudents().length; i++) {
if (this.getStudents()[i] == null) {
student.setSubject(this);
this.getStudents()[i] = student;
this.setCount(i + 1);
break;
}
}
}
}
```
- 阶段一 Java 零基础入门
- 步骤1:基础语法
- 第01课 初识
- 第02课 常量与变量
- 第03课 运算符
- 第04课 选择结构
- 第05课 循环结构
- 第06课 一维数组
- 第08课 方法
- 第09课 数组移位与统计
- 第10课 基础语法测试
- 第09课 基础语法测试(含答案)
- 步骤2:面向对象
- 第01课 类和对象
- 第02课 封装
- 第03课 学生信息管理
- 第04课 继承
- 第05课 单例模式
- 第06课 多态
- 第07课 抽象类
- 第08课 接口
- 第09课 内部类
- 第10课 面向对象测试
- 第10课 面向对象测试(含答案)
- 步骤3:常用工具类
- 第01课 异常
- 第02课 包装类
- 第03课 字符串
- 第04课 集合
- 第05课 集合排序
- 第06课 泛型
- 第07课 多线程
- 第08课 输入输出流
- 第09课 案例:播放器
- 第10课 常用工具测试(一)
- 第10课 常用工具测试(一)(答案)
- 第10课 常用工具测试(二)
- 第10课 常用工具测试(二)(答案)
- 阶段二 从网页搭建入门 JavaWeb
- 步骤1:HTML 与 CSS
- 第01课 HTML 入门
- 第01课 HTML 入门(作业)
- 第02课 CSS 入门
- 第02课 CSS 入门(作业)
- 第03课 CSS 布局
- 第03课 CSS 布局(作业)
- 步骤2:JavaScript 与前端案例
- 第01课 JavaScript 入门
- 第01课 JavaScript 入门(作业)
- 第02课 仿计算器
- 第03课 前端油画商城案例
- 第04课 轮播图
- 第05课 网页搭建测试
- 第05课 网页搭建测试(含答案)
- 步骤3:JavaScript 教程
- 入门
- 概述
- 基本语法
- 数据类型
- 概述
- 数值
- 字符串
- undefined, null 和布尔值
- 对象
- 函数
- 数组
- 运算符
- 算术运算符
- 比较运算符
- 布尔运算符
- 位运算符
- 运算顺序
- 语法专题
- 数据类型的转换
- 错误处理机制
- 标准库
- String
- Date
- Math
- DOM
- 概述
- Document 节点
- 事件
- EventTarget 接口
- 事件模型
- 常见事件
- 阶段三 数据库开发与实战
- 步骤1:初始数据库操作
- 第01课 数据类型
- 第02课 表的管理
- 第03课 数据管理
- 第04课 常用函数
- 第05课 JDBC 入门
- 第06课 Java 反射
- 第07课 油画商城
- 第08课 数据库基础测试
- 步骤2:MyBatis 从入门到进阶
- 第01课 IntelliJ IDEA 开发工具入门
- 第02课 Maven 入门
- 第03课 工厂模式
- 第04课 MyBatis 入门
- 第05课 MyBatis 进阶
- 第06课 商品信息管理
- 第07课 MyBatis 基础测试
- 步骤3:Redis 数据库与 Linux 下项目部署
- 第01课 Linux 基础
- 第02课 Linux 下 JDK 环境搭建及项目部署
- 第03课 Redis 入门
- 阶段四 SSM 到 Spring Boot 入门与综合实战
- 步骤1:Spring 从入门到进阶
- 第01课 Spring 入门
- 第02课 Spring Bean 管理
- 第03课 Spring AOP
- 第04课 基于 AspectJ 的 AOP 开发
- 第05课 JDBC Template
- 第06课 Spring 事务管理
- 第07课 人员管理系统开发
- 第08课 Spring 从入门到进阶测试
- 步骤2:Spring MVC 入门与 SSM 整合开发
- 第01课 Spring MVC 入门与数据绑定
- 第02课 Restful 风格的应用
- 第03课 SpringMVC 拦截器
- 第04课 办公系统核心模块
- 步骤3:Spring Boot 实战
- 第01课 Spring Boot 入门
- 第02课 校园商铺项目准备
- 第03课 校园商铺店铺管理
- 第04课 校园商铺商品管理及前台展示
- 第05课 校园商铺框架大换血
- 步骤4:Java 面试
- 第01课 面试准备
- 第02课 基础面试技巧
- 第03课 Web基础与数据处理
- 第04课 主流框架