diff --git "a/## \346\216\245\345\217\243\351\242\230\347\233\2562.md" "b/## \346\216\245\345\217\243\351\242\230\347\233\2562.md" new file mode 100644 index 0000000000000000000000000000000000000000..da39aae1d96ced58d5c1a9f0d7ac625bc0652772 --- /dev/null +++ "b/## \346\216\245\345\217\243\351\242\230\347\233\2562.md" @@ -0,0 +1,138 @@ +## 接口题目2 + +1. 请定义“员工(类)”: + 属性:姓名、性别、年龄(全部私有) + 行为:工作(抽象) + 无参、全参构造方法 + get/set方法 + +2. 请定义“绘画(接口)” + 抽象方法:绘画 +3. 请定义“Java讲师类”继承自“员工类” +4. 请定义”UI讲师类”,继承自“员工类”,并实现“绘画”接口。 + +**要求**: + +1. 请按上述要求设计出类结构,并实现相关的方法。 +2. 测试类中创建对象测试,属性可自定义: + - 创建一个Java讲师类对象,调用工作的方法。 + - 创建一个UI讲师类对象,调用工作方法,和绘画方法。 + +**答案:** + +```java +public abstract class Employee { + private String name; + private String gender; + private int age; + + public Employee() {} + + public Employee(String name, String gender, int age) { + this.name = name; + this.gender = gender; + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public abstract void work(); +} +===================================================================================================== +public interface Painting { + void draw(); +} +===================================================================================================== +public class JavaTeacher extends Employee { + public JavaTeacher(String name, String gender, int age) { + super(name, gender, age); + } + + @Override + public void work() { + System.out.println(this + "\n" + getName() + "讲Java课"); + } + + @Override + public String toString() { + return "JavaTeacher{" + + "name='" + getName() + '\'' + + ", gender='" + getGender() + '\'' + + ", age=" + getAge() + + '}'; + } +} +===================================================================================================== +public class UITeacher extends Employee implements Painting { + public UITeacher(String name, String gender, int age) { + super(name, gender, age); + } + + @Override + public void work() { + System.out.println(this + "\n" + getName() + "讲UI设计课"); + } + + @Override + public void draw() { + System.out.println(getName() + "画画"); + } + + @Override + public String toString() { + return "UITeacher{" + + "name='" + getName() + '\'' + + ", gender='" + getGender() + '\'' + + ", age=" + getAge() + + '}'; + } +} +===================================================================================================== +public class Test { + public static void main(String[] args) { + JavaTeacher javaTeacher = new JavaTeacher("小明", "男", 25); + javaTeacher.work(); + + UITeacher uiTeacher = new UITeacher("小红", "女", 18); + uiTeacher.work(); + uiTeacher.draw(); + } +} +``` + + + +**运行结果:** + +```java +JavaTeacher{name='小明', gender='男', age=25} +小明讲Java课 +UITeacher{name='小红', gender='女', age=18} +小红讲UI设计课 +小红画画 +``` + + + diff --git "a/06 \351\203\255\345\256\207\351\221\253/20230509 \345\274\202\345\270\270\344\275\234\344\270\232.md" "b/06 \351\203\255\345\256\207\351\221\253/20230509 \345\274\202\345\270\270\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..d5adec658e8dd75109d8618f37ee578cb765ceab --- /dev/null +++ "b/06 \351\203\255\345\256\207\351\221\253/20230509 \345\274\202\345\270\270\344\275\234\344\270\232.md" @@ -0,0 +1,23 @@ +## 1.作业 + +```java +public class ExampleException { + public static void main(String[] args) { + try { + divide(10, 0); + } catch (ArithmeticException e) { + System.out.println("除数不能为零!"); + } + } + + public static void divide(int dividend, int divisor) { + if (divisor == 0) { + throw new ArithmeticException("除数不能为零!"); + } + + int quotient = dividend / divisor; + System.out.println("商:" + quotient); + } +} + +``` diff --git "a/20230505 \345\244\232\346\200\201\344\275\234\344\270\232.md" "b/20230505 \345\244\232\346\200\201\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..96ba6decd9b3370e488e33b2585d71bda6e2d040 --- /dev/null +++ "b/20230505 \345\244\232\346\200\201\344\275\234\344\270\232.md" @@ -0,0 +1,158 @@ +## 多态练习 + +### 1、图形 + +(1)父类Graphic图形 + +- public double area()方法:返回0.0 +- public double perimeter()方法:返回0.0 +- public String getInfo()方法,返回图形面积和图形周长 + +(2)子类Circle圆继承Graphic图形 + +- 包含属性:radius,属性私有化 +- 包含get/set方法 +- 重写area()求面积方法 +- 重写perimeter()求周长方法 +- 重写getInfo()方法,返回圆的半径,面积和周长 + +(3)子类矩形Rectangle继承Graphic图形 + +- 包含属性:length、width,属性私有化 +- 包含get/set方法 +- 重写area()求面积方法 +- 重写perimeter()求周长方法 +- 重写getInfo()方法,返回长和宽,面积、周长信息 + +(4)在测试类中,新建一个比较图形面积的方法,再建一个比较图形周长的方法,main方法中创建多个圆和矩形对象,再调用方法比较他们的周长或面积。 + +```java +// 父类Graphic +public class Graphic { + public double area() { + return 0.0; + } + + public double perimeter() { + return 0.0; + } + + public String getInfo() { + return "Area: " + area() + "\nPerimeter: " + perimeter(); + } +} + +// 子类Circle +public class Circle extends Graphic { + private double radius; + + public Circle(double radius) { + this.radius = radius; + } + + public double getRadius() { + return radius; + } + + public void setRadius(double radius) { + this.radius = radius; + } + + @Override + public double area() { + return Math.PI * radius * radius; + } + + @Override + public double perimeter() { + return 2 * Math.PI * radius; + } + + @Override + public String getInfo() { + return "Radius: " + radius + "\nArea: " + area() + "\nPerimeter: " + perimeter(); + } +} + +// 子类Rectangle +public class Rectangle extends Graphic { + private double length; + private double width; + + public Rectangle(double length, double width) { + this.length = length; + this.width = width; + } + + public double getLength() { + return length; + } + + public void setLength(double length) { + this.length = length; + } + + public double getWidth() { + return width; + } + + public void setWidth(double width) { + this.width = width; + } + + @Override + public double area() { + return length * width; + } + + @Override + public double perimeter() { + return 2 * (length + width); + } + + @Override + public String getInfo() { + return "Length: " + length + "\nWidth: " + width + "\nArea: " + area() + "\nPerimeter: " + perimeter(); + } +} + +// 测试类 +public class TestGraphic { + public static void main(String[] args) { + Circle circle1 = new Circle(5); + Circle circle2 = new Circle(10); + Rectangle rectangle1 = new Rectangle(3, 4); + Rectangle rectangle2 = new Rectangle(5, 6); + + compareArea(circle1, circle2); // 比较两个圆的面积 + comparePerimeter(rectangle1, rectangle2); // 比较两个矩形的周长 + } + + public static void compareArea(Graphic g1, Graphic g2) { + double area1 = g1.area(); + double area2 = g2.area(); + + if (area1 > area2) { + System.out.println("The first graphic has a larger area."); + } else if (area1 < area2) { + System.out.println("The second graphic has a larger area."); + } else { + System.out.println("The two graphics have the same area."); + } + } + + public static void comparePerimeter(Graphic g1, Graphic g2) { + double perimeter1 = g1.perimeter(); + double perimeter2 = g2.perimeter(); + + if (perimeter1 > perimeter2) { + System.out.println("The first graphic has a longer perimeter."); + } else if (perimeter1 < perimeter2) { + System.out.println("The second graphic has a longer perimeter."); + } else { + System.out.println("The two graphics have the same perimeter."); + } + } +} + +```