diff --git "a/20 \351\203\221\345\274\230\346\231\226/20230427 \351\235\242\345\220\221\345\257\271\350\261\241\344\275\234\344\270\232.md" "b/20 \351\203\221\345\274\230\346\231\226/20230427 \351\235\242\345\220\221\345\257\271\350\261\241\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..7a6baba9db53a53b56a867c02543bed30a45c81e --- /dev/null +++ "b/20 \351\203\221\345\274\230\346\231\226/20230427 \351\235\242\345\220\221\345\257\271\350\261\241\344\275\234\344\270\232.md" @@ -0,0 +1,168 @@ +## 题目3 + +将以下描述信息转换为java代码: + +1、定义员工Employee类,该类具有如下成员: + +```java +(1) 属性:姓名(name,字符串类型),工号(workId,字符串类型),部门(dept,字符串类型),属性私有 +(2) 方法: + 1. 空参数构造和满参数构造 + 2. 提供属性的set/get方法 + 3. 定义showMsg方法抽象方法 +``` + +```java +public abstract class Employee { + private String name; + private String workId; + private String dept; + + public Employee() { + } + + public Employee(String name, String workId, String dept) { + this.name = name; + this.workId = workId; + this.dept = dept; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getWorkId() { + return workId; + } + + public void setWorkId(String workId) { + this.workId = workId; + } + + public String getDept() { + return dept; + } + + public void setDept(String dept) { + this.dept = dept; + } + public abstract void showMsg(); +} +``` + +2、定义经理Manager类继承Employee类,该类具有如下成员: + +``` +(1) 属性:职员Clerk(该经理的职员) +(2) 方法: + 1. 空参数构造方法和满参数构造方法 + 2. 属性的get和set方法 + 3. 重写父类的showMsg方法,按照要求实现信息打印 +``` + +```java +public class Manager extends Employee{ + + String Clerk; + + public Manager(String clerk) { + Clerk = clerk; + } + + public Manager() { + } + + public String getClerk() { + return Clerk; + } + + public void setClerk(String clerk) { + Clerk = clerk; + } + + @Override + public void showMsg() { + System.out.println(getDept()+"的:"+getName()+",员工编号:"+getWorkId()+"\n"+"他的职员是"+Clerk); + } +} + +``` + +3、定义职员Clerk类继承Employee类,该类具有如下成员: + +``` +(1) 属性:经理Manager(该职员的经理) +(2) 方法: + 1. 空参数构造方法和满参数构造方法 + 2. 属性的get和set方法 + 3. 重写父类的showMsg方法,按照要求实现信息打印 +``` + +```java +public class Clerk extends Employee{ + String Manager; + + public Clerk() { + } + + public Clerk(String manager) { + Manager = manager; + } + + public String getManager() { + return Manager; + } + + public void setManager(String manager) { + Manager = manager; + } + + @Override + public void showMsg() { + System.out.println(getDept()+"的:"+getName()+",员工编号:"+getWorkId()+"\n"+"他的职员是"+Manager); + } +} + +``` + +4、创建Test测试类,测试类中创建main方法,main方法中创建经理对象和职员对象,信息分别如下: + +```java +经理:工号为 M001,名字为 张小强,部门为 销售部 +职员:工号为 C001,名字为 李小亮,部门为 销售部 + +经理的职员为李小亮,职员的经理为张小强 +``` + +分别调用经理的showMsg方法和职员的showMsg方法打印结果: + +```java +销售部的:张小强,员工编号:M001 +他的职员是李小亮 +销售部的:李小亮,员工编号:C001 +他的经理是张小强 +``` + +```java +public class Test { + public static void main(String[] args) { + Manager ma = new Manager(); + ma.setName("张小强"); + ma.setWorkId("M001"); + ma.setDept("销售部"); + ma.Clerk="李小亮"; + ma.showMsg(); + Clerk cl = new Clerk(); + cl.setName("李小亮"); + cl.setWorkId("C001"); + cl.setDept("销售部"); + cl.Manager="张小强"; + cl.showMsg(); + } +} +``` + diff --git "a/20 \351\203\221\345\274\230\346\231\226/20230504 \346\216\245\345\217\243\344\275\234\344\270\232.md" "b/20 \351\203\221\345\274\230\346\231\226/20230504 \346\216\245\345\217\243\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..1a805b3acf4adf6044d1ff5068583633a302a7a2 --- /dev/null +++ "b/20 \351\203\221\345\274\230\346\231\226/20230504 \346\216\245\345\217\243\344\275\234\344\270\232.md" @@ -0,0 +1,169 @@ +## 接口题目2 + +1. 请定义“员工(类)”: + 属性:姓名、性别、年龄(全部私有) + 行为:工作(抽象) + 无参、全参构造方法 + get/set方法 + +2. 请定义“绘画(接口)” + 抽象方法:绘画 +3. 请定义“Java讲师类”继承自“员工类” +4. 请定义”UI讲师类”,继承自“员工类”,并实现“绘画”接口。 + +**要求**: + +1. 请按上述要求设计出类结构,并实现相关的方法。 +2. 测试类中创建对象测试,属性可自定义: + - 创建一个Java讲师类对象,调用工作的方法。 + - 创建一个UI讲师类对象,调用工作方法,和绘画方法。 + +**答案:** + +```java +package e; + +public abstract class Staff { + private String name; + private String sex; + private int age; + abstract void work(); + + public Staff() { + } + + public Staff(String name, String sex, int age) { + this.name = name; + this.sex = sex; + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + @Override + public String toString() { + return "Staff{" + + "name='" + name + '\'' + + ", sex='" + sex + '\'' + + ", age=" + age + + '}'; + } +} + + + + +package e; + +public interface Draw { + void draw(); +} + + + + + package e; + +public class JavaTeacher extends Staff{ + public JavaTeacher() { + } + + public JavaTeacher(String name, String sex, int age) { + super(name, sex, age); + } + + @Override + void work() { + System.out.println(getName()+"讲Java课"); + } + + public String toString() { + return "JavaTeacher{" + + "name='" + getName() + '\'' + + ", sex='" + getSex() + '\'' + + ", age=" + getAge() + + '}'; + } +} + + +package e; + +public class UITeacher extends Staff implements Draw{ + public UITeacher() { + } + + public UITeacher(String name, String sex, int age) { + super(name, sex, age); + } + + @Override + public void draw() { + System.out.println(getName()+"画画"); + } + + @Override + void work() { + System.out.println(getName()+"讲UI设计课"); + } + public String toString() { + return "UITeacher{" + + "name='" + getName() + '\'' + + ", sex='" + getSex() + '\'' + + ", age=" + getAge() + + '}'; + } +} + + + package e; + +public class Test { + public static void main(String[] args) { + Staff s=new JavaTeacher("小明","男",25); + System.out.println(s); + s.work(); + UITeacher s2=new UITeacher("小红","女",18); + System.out.println(s2); + s2.work(); + s2.draw(); + } +} +``` + + + +**运行结果:** + +```java +JavaTeacher{name='小明', gender='男', age=25} +小明讲Java课 +UITeacher{name='小红', gender='女', age=18} +小红讲UI设计课 +小红画画 +``` + + +