学习视频链接:https://www.bilibili.com/video/BV17F411T7Ao
需求:
在黑马程序员中有很多员工(Employee)。
按照工作内容不同分教研部员工(Teacher)和行政部员工(AdminStaff)
package cn.kox.homework01;
/**
* @ClassName: Employee
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Employee {
private String id;
private String name;
public Employee() {
}
public Employee(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void work() {
System.out.println("员工正在工作...");
}
}
package cn.kox.homework01;
/**
* @ClassName: Teacher
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Teacher extends Employee{
public Teacher() {
}
public Teacher(String id, String name) {
super(id, name);
}
@Override
public void work() {
System.out.println("教研部员工正在工作...");
}
}
package cn.kox.homework01;
/**
* @ClassName: AdminStaff
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class AdminStaff extends Employee{
public AdminStaff() {
}
public AdminStaff(String id, String name) {
super(id, name);
}
@Override
public void work() {
System.out.println("行政部门的员工正在工作...");
}
}
package cn.kox.homework01;
/**
* @ClassName: Lecturer
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Lecturer extends Teacher{
public Lecturer() {
}
public Lecturer(String id, String name) {
super(id, name);
}
@Override
public void work() {
System.out.println("讲师正在工作...");
}
}
package cn.kox.homework01;
/**
* @ClassName: Tutor
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Tutor extends Teacher{
public Tutor() {
}
public Tutor(String id, String name) {
super(id, name);
}
@Override
public void work() {
System.out.println("助教正在工作");
}
}
package cn.kox.homework01;
/**
* @ClassName: Maintainer
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Maintainer extends AdminStaff{
public Maintainer() {
}
public Maintainer(String id, String name) {
super(id, name);
}
@Override
public void work() {
System.out.println("维护专员正在工作...");
}
}
package cn.kox.homework01;
/**
* @ClassName: Buyer
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Buyer extends AdminStaff{
public Buyer() {
}
public Buyer(String id, String name) {
super(id, name);
}
@Override
public void work() {
System.out.println("采购专员正在工作...");
}
}
package cn.kox.homework01;
/**
* @ClassName: Demo
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Test {
public static void main(String[] args) {
Lecturer a1 = new Lecturer("001", "a1");
System.out.println(a1.getId() + "," + a1.getName());
a1.work();
Maintainer b2 = new Maintainer();
b2.setId("002");
b2.setName("b2");
System.out.println(b2.getId() + "," + b2.getName());
b2.work();
}
}
需求:
在传智教育的tlias教学资源管理系统中,存在学生、老师角色会进入系统。
分析:
学生信息和行为(名称,年龄,所在班级,查看课表,填写听课反馈fillForm)
老师信息和行为(名称,年龄,部门名称,查看课表,发布问题publishForm)
定义角色类作为父类包含属性(名称,年龄),行为(查看课表)
定义子类:学生类包含属性(所在班级),行为(填写听课反馈)
定义子类:老师类包含属性(部门名称),行为(发布问题)
package cn.kox.homework02;
/**
* @ClassName: Role
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Role {
private String name;
private int age;
public Role() {
}
public Role(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void action() {
System.out.println("查看课表...");
}
}
package cn.kox.homework02;
/**
* @ClassName: Teacher
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Teacher extends Role{
private String department;
public Teacher() {
}
public Teacher(String name, int age, String department) {
super(name, age);
this.department = department;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public void action() {
System.out.println(getName() + "老师正在发布问题....");
}
}
package cn.kox.homework02;
/**
* @ClassName: Student
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Student extends Role{
private String myClass;
public Student() {
}
public Student(String name, int age, String myClass) {
super(name, age);
this.myClass = myClass;
}
public String getMyClass() {
return myClass;
}
public void setMyClass(String myClass) {
this.myClass = myClass;
}
@Override
public void action() {
System.out.println(getName() + "学生正在填写听过课反馈...");
}
}
package cn.kox.homework02;
/**
* @ClassName: Test
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Test {
public static void main(String[] args) {
Student s1 = new Student("a1", 20, "1班");
s1.action();
Teacher t1 = new Teacher();
t1.setName("b2");
t1.setAge(35);
t1.setDepartment("Java教学");
t1.action();
}
}
需求:
完成代码(按照标准格式写),然后在测试类中测试。
1.手机类Phone
属性:品牌brand,价格price
无参构造,有参构造
行为:打电话call,发短信sendMessage,玩游戏playGame
2.测试类
创建Phone类对象,调用Phone类中的方法
思考:
假设所有的手机都有属性屏幕的尺寸(int size),而且假设所有手机的屏幕尺寸为6,应该如何实现?
提示:
可以把size定义为静态
package cn.kox.homework03;
/**
* @ClassName: Phone
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Phone {
static int size = 6;
private String brand;
private int price;
public Phone() {
}
public Phone(String brand, int price) {
this.brand = brand;
this.price = price;
}
public static int getSize() {
return size;
}
public static void setSize(int size) {
Phone.size = size;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public void call() {
System.out.println("打电话...");
}
public void sendMessage() {
System.out.println("发短信...");
}
public void playGame() {
System.out.println("打游戏...");
}
}
package cn.kox.homework03;
/**
* @ClassName: Test
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Test {
public static void main(String[] args) {
Phone p1 = new Phone("小米", 666);
System.out.print("一个" + Phone.size + "英寸,价值" + p1.getPrice() + "的" + p1.getBrand() +"手机" + "正在");
p1.call();
Phone p2 = new Phone();
p2.setBrand("华为");
p2.setPrice(999);
Phone.size = 7;
System.out.print("一个" + Phone.size + "英寸,价值" + p2.getPrice() + "的" + p2.getBrand() +"手机" + "正在");
p2.sendMessage();
}
}
需求:
分析以下需求,并用代码实现
1.定义Person类
属性:
姓名name、性别gender、年龄age、国籍nationality;
方法:
吃饭eat、睡觉sleep,工作work。
2.根据人类,创建一个学生类Student
增加属性:
学校school、学号stuNumber;
重写工作方法(学生的工作是学习)。
3.根据人类,创建一个工人类Worker
增加属性:
单位unit、工龄workAge;
重写工作方法(工人的工作是盖房子)。
4.根据学生类,创建一个学生干部类 StudentLeader
增加属性:
职务job;
增加方法:开会meeting。
5.编写测试类分别对上述3类具体人物进行测试。
6.要求运行结果:
学生需要学习!
工人的工作是盖房子!
学生干部喜欢开会!
package cn.kox.homework04;
/**
* @ClassName: Person
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Person {
private String name;
private String gender;
private int age;
private String nationality;
public Person() {
}
public Person(String name, String gender, int age, String nationality) {
this.name = name;
this.gender = gender;
this.age = age;
this.nationality = nationality;
}
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 String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
public void work() {
System.out.println("工作");
}
}
package cn.kox.homework04;
/**
* @ClassName: Student
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Student extends Person{
private String school;
private String stuNumber;
public Student() {
}
public Student(String name, String gender, int age, String nationality, String school, String stuNumber) {
super(name, gender, age, nationality);
this.school = school;
this.stuNumber = stuNumber;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getStuNumber() {
return stuNumber;
}
public void setStuNumber(String stuNumber) {
this.stuNumber = stuNumber;
}
@Override
public void work() {
System.out.println("学生的工作是学习");
}
}
package cn.kox.homework04;
/**
* @ClassName: Worker
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Worker extends Person{
private String unit;
private int workAge;
public Worker() {
}
public Worker(String name, String gender, int age, String nationality, String unit, int workAge) {
super(name, gender, age, nationality);
this.unit = unit;
this.workAge = workAge;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public int getWorkAge() {
return workAge;
}
public void setWorkAge(int workAge) {
this.workAge = workAge;
}
@Override
public void work() {
System.out.println("工人的工作是盖房子");
}
}
package cn.kox.homework04;
/**
* @ClassName: StudentLeader
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class StudentLeader extends Student{
private String job;
public StudentLeader() {
}
public StudentLeader(String name, String gender, int age, String nationality, String school, String stuNumber, String job) {
super(name, gender, age, nationality, school, stuNumber);
this.job = job;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public void meeting() {
System.out.println("学生干部喜欢开会");
}
}
package cn.kox.homework04;
/**
* @ClassName: Test
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Test {
public static void main(String[] args) {
Student s1 = new Student("a1", "boy", 18, "China", "abc123", "001");
System.out.println(s1.getName() + "," + s1.getGender() + "," + s1.getAge() + " ," + s1.getNationality() + "," + s1.getSchool() + "," + s1.getStuNumber());
s1.work();
Worker w1 = new Worker();
w1.setName("b2");
w1.setGender("boy");
w1.setAge(58);
w1.setNationality("China");
w1.setUnit("abc321");
w1.setWorkAge(38);
System.out.println(w1.getName() + "," + w1.getGender() + "," + w1.getAge() + " ," + w1.getNationality() + "," + w1.getUnit() + "," + w1.getWorkAge());
w1.work();
StudentLeader sL1 = new StudentLeader("a2", "boy", 19, "China", "abc1233", "002", "minister");
System.out.println(sL1.getName() + "," + sL1.getGender() + "," + sL1.getAge() + " ," + sL1.getNationality() + "," + sL1.getSchool() + "," + sL1.getStuNumber());
sL1.work();
sL1.meeting();
}
}
需求:
1.定义项目经理类
属性:
姓名 工号 工资 奖金
行为:
工作work
2.定义程序员类
属性:
姓名 工号 工资
行为:
工作work
3.向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法
4.编写测试类:完成这两个类的测试
package cn.kox.homework05;
/**
* @ClassName: Staff
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Staff {
private String name;
private String id;
private int salary;
public Staff() {
}
public Staff(String name, String id, int salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public void work() {
System.out.println("员工正在工作...");
}
}
package cn.kox.homework05;
/**
* @ClassName: Manager
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Manager extends Staff{
private int awards;
public Manager() {
}
public Manager(String name, String id, int salary, int awards) {
super(name, id, salary);
this.awards = awards;
}
public int getAwards() {
return awards;
}
public void setAwards(int awards) {
this.awards = awards;
}
@Override
public void work() {
System.out.println("这是经理的工作...");
}
}
package cn.kox.homework05;
/**
* @ClassName: Programmer
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Programmer extends Staff{
public Programmer() {
}
public Programmer(String name, String id, int salary) {
super(name, id, salary);
}
@Override
public void work() {
System.out.println("这是程序员的工作...");
}
}
package cn.kox.homework05;
/**
* @ClassName: Test
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Test {
public static void main(String[] args) {
Manager m1 = new Manager("a1", "001", 8000, 4000);
System.out.println(m1.getName() + "," + m1.getId() + "," + m1.getSalary() + "," + m1.getAwards());
m1.work();
Programmer b2 = new Programmer("b2", "002", 6000);
System.out.println(b2.getName() + "," + b2.getId() + "," + b2.getSalary());
b2.work();
}
}
需求:
根据需求完成代码:
1.定义动物类
属性:
年龄,颜色
行为:
eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西)
生成空参有参构造,set和get方法
2.定义狗类继承动物类
行为:
eat(String something)方法,看家lookHome方法(无参数)
3.定义猫类继承动物类
行为:
eat(String something)方法,逮老鼠catchMouse方法(无参数)
4.定义Person类
属性:
姓名,年龄
行为:
keepPet(Dog dog,String something)方法
功能:喂养宠物狗,something表示喂养的东西
该方法调用后打印结果为:颜色为黑色的2岁的狗,在吃骨头
行为:
keepPet(Cat cat,String something)方法
功能:喂养宠物猫,something表示喂养的东西
该方法调用后打印结果为:颜色为白色的2岁的猫,在吃小鱼干
5.生成空参有参构造,set和get方法
6.测试以上方法
package cn.kox.homework06;
/**
* @ClassName: Animal
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Animal {
private int age;
private String color;
public Animal() {
}
public Animal(int age, String color) {
this.age = age;
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String eat(String something) {
return "在吃" + something;
}
}
package cn.kox.homework06;
/**
* @ClassName: Cat
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Cat extends Animal{
public Cat() {
}
public Cat(int age, String color) {
super(age, color);
}
public void catchMouse() {
System.out.println("在抓老鼠");
}
}
package cn.kox.homework06;
/**
* @ClassName: Dog
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Dog extends Animal{
public Dog() {
}
public Dog(int age, String color) {
super(age, color);
}
public void lookHome() {
System.out.println("在看家");
}
}
package cn.kox.homework06;
/**
* @ClassName: Person
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void keepPet(Dog dog, String something) {
System.out.println("颜色为" + dog.getColor() + "的" + dog.getAge() + "岁" + "的狗," + dog.eat(something));
}
public void keepPet(Cat cat, String something) {
System.out.println("颜色为" + cat.getColor() + "的" + cat.getAge() + "岁" + "的猫," + cat.eat(something));
}
}
package cn.kox.homework06;
/**
* @ClassName: Test
* @Author: Kox
* @Data: 2023/1/26
* @Sketch:
*/
public class Test {
public static void main(String[] args) {
Dog d1 = new Dog(6, "金色");
d1.lookHome();
Cat c1 = new Cat(4, "灰色");
c1.catchMouse();
Person p1 = new Person("kox", 19);
System.out.println(p1.getName() + "," + p1.getAge());
p1.keepPet(d1, "骨头");
p1.keepPet(c1, "鱼干");
}
}