es6 写的,java 照搬就是
class Proson {
constructor(name, money) {
this.name = name;
this.money = money;
this.love_level = 0;
console.log(`${
this.name} 有 ${
this.money} 的钱, 有 ${this.love_level} 的好感度`);
}
costLove(love_level) {
this.love_level-=love_level;
console.log(`${
this.name} 降低了 ${love_level} 的好感度,现在还有 ${this.love_level} 的好感度`);
}
}
class Meet {
constructor(sender) {
this.sender = sender;
this.agreer = null;
this.startTime = null;
this.endTime = null;
console.log(`${
this.sender.name} 发起了约会`);
}
agree(agreer) {
this.agreer = agreer;
console.log(`${
this.agreer.name} 接受了约会`);
}
start () {
if(this.agreer !== null) {
console.log(`约会开始了`);
this.startTime = new Date();
} else {
console.log(`约会还未被接受`);
}
}
end () {
if(this.startTime !== null) {
console.log(`约会结束了`);
this.sender.costMoney(300);
this.sender.costLove(300);
this.agreer.costLove(300);
} else {
console.log(`约会还未开始`);
}
}
}
class Man extends Proson {
constructor(name, money) {
super(name, money);
}
sendMeet() {
return new Meet(this);
}
costMoney (money) {
this.money-=money;
console.log(`${
this.name} 花费 ${money} 的钱,现在有 ${
this.money} 的钱`);
}
}
class Woman extends Proson {
constructor(name, money) {
super(name, money);
}
agreeMeet(meet) {
meet.agree(this);
}
}
let tom = new Man('Tom',300);
let jan = new Woman('Jan',0);
let meet = tom.sendMeet();
jan.agreeMeet(meet);
meet.start();
meet.end();