Java学习—Day06
程序员文章站
2022-06-13 12:32:10
...
自学Java-day06
一、eclipse快捷键
ctrl+t 查看选中类的继承树
public abstract class Employee {
public abstract void work();
}
public class JavaEE extends Employee {
public void work() {
//覆盖抽象方法
}
}
Ctrl+滑动鼠标点击类名,或者选中类名后,按F3键查看所选中类的源代码。
文档使用说明书:
/**
* 类的功能
* @author DELL
* 版本号
*/
二、JAVA_HOME配置
1.设置path变量
在原有的path变量值前加入环境变量:jdk的安装路径。
此方法并不适用,容易修改path变量中属于windows系统的值。
2.新建JAVA_HOME变量
变量值为jdk安装路径,并在path变量值后引入JAVA_HOME的值,精确到bin目录。%JAVA_HOME%\bin;
三、酒店案例
某五星级酒店,资金雄厚,要招聘多名员工(经理、厨师、服务员)。入职的员工需要记录个人信息(姓名、工号、经理特有奖金属性)。他们都有自己的工作要做。
本案例要完成如下需求:
1.获取酒店幸运员工;
酒店开设VIP服务,酒店的厨师与服务员可以提供VIP服务。(厨师做菜加量、服务员给顾客倒酒)。
2.编写测试类
向酒店中,增加多名员工(其中包含1名经理,1名厨师、2名服务员);
调用酒店员工的工作功能
调用酒店员工的VIP服务功能
/*
* 酒店的VIP服务
* 厨师和服务员具有
* 需要厨师和服务员实现此接口
*/
public interface Vip {
public abstract void services();
}
/*
* 酒店员工类
* 姓名 工号 工作方法 (不同员工工作方法不同,使用抽象方法)
*/
public abstract class Employee {
private String name;
private String id;
public Employee() {
//空参构造器
}
public Employee(String name,String id) {
this.name=name;
this.id=id;
}//满参构造器
//因为未知调用者使用空参还是满参,故两种构造器在开发时都要写上
public abstract void work();
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;
}
}
/*
* 定义厨师类
* 属于员工中一种,同时具有额外功能
* 继承Employee,实现Vip接口
*/
public class ChuShi extends Employee implements Vip {
//提供空参的构造方法
public ChuShi() {};
public ChuShi(String name,String id) {
super(name,id);
}
//抽象方法重写
public void work() {
System.out.println("厨师在炒菜");
}
public void services() {
System.out.println("厨师做菜加量");
}
}
/*
* 定义服务员类
* 属于员工中一种,同时具有额外功能
* 继承Employee,实现Vip接口
*/
public class FuWuYuan extends Employee implements Vip {
//定义空参数构造方法
public FuWuYuan() {
super();
}
//定义满参数构造方法
public FuWuYuan(String name, String id) {
super(name, id);
}
//抽象方法重写
public void work() {
System.out.println("服务员在上菜");
}
public void services() {
System.out.println("服务员在给顾客倒酒");
}
}
/*
* 定义经理类
* 属性是员工一种,没有VIP功能,不用实现VIP接口
* 但有奖金属性
*/
public class JingLi extends Employee{
//定义空参数构造方法
public JingLi() {}
//定义满参数构造方法
public JingLi(String name,String id,double money) {
super(name,id);
this.money=money;
}
//定义奖金属性
private double money;
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
//重写抽象方法
public void work() {
System.out.println("管理,谁出错我罚谁");
}
}
public class Test {
public static void main(String[] args) {
//创建1个经理,2个服务员,2个厨师
JingLi j1=new JingLi("小明","董事会001",12345678.32);
j1.work();
FuWuYuan f1=new FuWuYuan("小红","服务员001");
FuWuYuan f2=new FuWuYuan("小花","服务员002");
f1.work();
f1.services();
f2.work();
f2.services();
ChuShi c1=new ChuShi("小刚","厨师001");
ChuShi c2=new ChuShi("小华","厨师002");
c1.work();
c1.services();
c2.work();
c2.services();
}
}
运行结果: