2022.01.11常见异常、UML用例图

2022.01.11日总结

1.Java中常见异常有哪些?举例说明(三个)

①程序IndexOutExp.java编译正确,运行结果:java IndexOutExp lisa bily kessy java.lang.ArrayIndexOutOfBoundsException at Test7_1.main(Test7_1.java:5) Exception in thread "main"

1 public class IndexOutExp {
2 public static void main(String[] args) {
3 String friends[] = { "lisa", "bily", "kessy" };
4 for (int i = 0; i < 5; i++) {
5 System.out.println(friends[i]); // friends[4]?
6 }
7 System.out.println("\nthis is the end");
8 }
9 }

②程序DivideZero.java编译正确,运行结果:java DivideZero java.lang.ArithmeticException: / by zero at DivideZero.main(DivideZero.java:6) Exception in thread "main

1 public class DivideZero {
2 int x;
3 public static void main(String[] args) {
4 int y;
5 DivideZero c=new DivideZero();
6 y=3/c.x; 
7 System.out.println("program ends ok!");
8 }
9 }

③程序Person.java编译正确,运行结果:java Person java.lang. java.lang.ClassCastException at Person.main(Person.java:5) Exception in thread "main"

1 public class Order {
2 public static void main(String[] args) {
3 Object obj = new Date();
4 Order order;
5 order = (Order) obj;
6 System.out.println(order);
7 }
8 }

 

2.接口练习题

 

 题解:(有第二种方法,待完善)

public interface CompareObject {
    public int compareTo(Object o);
}

public class Circle {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }
}

class ComparableCircle extends Circle implements CompareObject {

    public ComparableCircle(double radius) {
        super(radius);
    }

    public int compareTo(Object o) {
        if (this == o) {
            return 0;
        }
        if (o instanceof ComparableCircle) {
            if (this.getRadius() < ((ComparableCircle) o).getRadius()) {
                return -1;
            } else if (this.getRadius() == ((ComparableCircle) o).getRadius()) {
                return 0;
            } else {
                return 1;
            }
        } else {
            throw new RuntimeException("传入的数据类型不匹配");
        }
    }
}

class InterfaceTest {

    public static void main(String[] args) {
        ComparableCircle c1 = new ComparableCircle(8.0);
        ComparableCircle c2 = new ComparableCircle(8.0);

        System.out.println(c1.compareTo(c2));
    }
}

 

3.UML图-用例图用例间的关系难点理解

泛化:就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的

扩展:扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能

 

对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。

对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;

 

posted @ 2022-01-11 23:53  Fancy[love]  阅读(160)  评论(0编辑  收藏  举报