目录
一、实验目的与任务
1、掌握常用类和集合的使用
2、掌握异常处理的机制
3、创建类并抛出异常,对异常进行捕获,自定义异常
二、实验内容、要求及安排方式
1、实验内容与要求:
(1)
设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示:
姓名 | 成绩 |
刘德华 | 90 |
张学友 | 80 |
刘杰 | 65 |
章子怡 | 100 |
周迅 | 60 |
将以上5个对象放入LinkedList中,完成如下操作和统计:
- 输出LinkedList中的对象个数。
- 删除姓名为“刘杰”的学生信息,并输出LinkedList中现有学生信息。
- 将姓名为“刘德华”的学生成绩改为95。
- 输出成绩不及格的学生姓名。
(2)
编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法speak(int m)。要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写主类,在主方法中创建Student对象,让该对象调用speak()方法。
(3)
创建类Computer,该类中有一个计算两个数最大公约数的方法,如果向该方法传递负整数,该方法抛出自定义异常。
2、要求:
能够上机编辑、调试java程序;
3、实验安排方式:
每组1人,独立完成上机实验;
三、实验环境
硬件环境:微型计算机一台。
软件环境:Window XP/7/8/10操作系统、Eclipse、JDK。
四、核心代码及运行效果
无注释版
(1)
Student类:
public class Student {
private String name;
private int scores;
public Student() {
}
public Student(String name, int scores) {
this.name = name;
this.scores = scores;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScores() {
return scores;
}
public void setScores(int scores) {
this.scores = scores;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", scores=" + scores +
'}';
}
}
StudentTest类:
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.function.Consumer;
public class StudentTest {
public static void main(String[] args) {
LinkedList<Student> list = new LinkedList<>();
LinkedList<Student> list2 = new LinkedList<>();
Student s1 = new Student("刘德华", 90);
Student s2 = new Student("张学友", 80);
Student s3 = new Student("刘杰", 65);
Student s4 = new Student("章子怡", 100);
Student s5 = new Student("周迅", 60);
Collections.addAll(list, s1, s2, s3, s4, s5);
System.out.println("==================需求一============");
int size = list.size();
System.out.print("LinkedList中的对象个数为:");
System.out.println(size);
System.out.println("==================需求二============");
Iterator<Student> iterator = list.iterator();
while (iterator.hasNext()) {
if (iterator.next().getName().equals("刘杰")) {
iterator.remove();
}
}
for (Student student : list) {
System.out.println(student);
}
System.out.println("==================需求三============");
for (Student student : list) {
if (student.getName().equals("刘德华")) {
student.setScores(95);
}
}
list.forEach(student -> {
if (student.getName().equals("刘德华")) System.out.println(student);
});
System.out.println("==================需求四============");
for (Student student : list) {
if (student.getScores() <= 60)
System.out.println(student.getName());
}
}
}
(2)
Myexception:
public class MyException extends RuntimeException{
public MyException() {
}
public MyException(String message) {
super(message);
}
}
Student类:
public class Student {
public void speak(int m) {
if(m > 1000){
throw new MyException("输入的数据"+m +"大于1000");
}
}
}
StudentTest类:
import java.util.Scanner;
public class StudentTest {
public static void main(String[] args) {
Student s = new Student();
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
try {
s.speak(i);
}catch (MyException e ){
e.printStackTrace();
}
}
}
(3)
Myexception:
public class MyException extends RuntimeException{
public MyException() {
}
public MyException(String message) {
super(message);
}
}
computer类:
public class Computer {
public int num(int a , int b){
if(a <= 0 || b <= 0){
throw new MyException("输入的参数中存在负数或零,请重新输入");
}
if(a<b){
int tmp=0;
tmp = a;
a=b;
b=tmp;
}
int r=a % b;
while (r !=0){
a=b;
b=r;
r=a % b;
}
return b;
}
}
computerTest类:
import java.util.Scanner;
public class ComputerTest {
public static void main(String[] args) {
Computer c = new Computer();
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int j = sc.nextInt();
try {
System.out.println(c.num(i, j));
}catch (MyException e){
e.printStackTrace();
}
}
}
五、实验小结
略