feat(class23): 多态、继承、重载综合练习,引入lombok插件简化语法
- 新增 Card 类,包含基本的存款和消费功能- 添加 GoldCard 和 SilverCard 类,分别实现不同的优惠策略 - 编写 Test 类进行功能测试 - 在项目中集成 Lombok 依赖,简化代码
This commit is contained in:
@@ -7,5 +7,14 @@
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module-library" scope="PROVIDED">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.18.34/lombok-1.18.34.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
||||
27
src/class23/Card.java
Normal file
27
src/class23/Card.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package class23;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
// lombok 注解,简化类的 getter/setter/toString/equals/hashCode 方法
|
||||
// IDEA需启用注解处理器
|
||||
public class Card {
|
||||
private String carID;
|
||||
private String name;
|
||||
private int phone;
|
||||
private double money;
|
||||
public void deposit(double money) {
|
||||
this.money += money;
|
||||
}
|
||||
public void consume(double money) {
|
||||
if(this.money >= money){
|
||||
this.money -= money;
|
||||
}else {
|
||||
System.out.println("余额不足");
|
||||
}
|
||||
}
|
||||
}
|
||||
26
src/class23/GoldCard.java
Normal file
26
src/class23/GoldCard.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package class23;
|
||||
|
||||
public class GoldCard extends Card{
|
||||
public GoldCard(String carID, String name, int phone, double money) {
|
||||
super(carID, name, phone, money);
|
||||
}
|
||||
@Override
|
||||
public void consume(double money){
|
||||
System.out.println("您当前消费:"+ money);
|
||||
System.out.println("优惠后价格:"+ money*0.8);
|
||||
if (money<getMoney()){
|
||||
setMoney(getMoney()-money*0.8);
|
||||
} else {
|
||||
System.out.println("余额不足");
|
||||
}
|
||||
if(money*0.8>=200){
|
||||
printTicket();
|
||||
}else {
|
||||
System.out.println("您当前消费不满200,不能免费洗车!");
|
||||
}
|
||||
|
||||
}
|
||||
public void printTicket(){
|
||||
System.out.println("您消费了,请打印洗车票");
|
||||
}
|
||||
}
|
||||
18
src/class23/SilverCard.java
Normal file
18
src/class23/SilverCard.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package class23;
|
||||
|
||||
public class SilverCard extends Card{
|
||||
public SilverCard(String carID, String name, int phone, double money) {
|
||||
super(carID, name, phone, money);
|
||||
}
|
||||
@Override
|
||||
public void consume(double money) {
|
||||
System.out.println("您当前消费:"+ money);
|
||||
System.out.println("优惠后价格:"+ money*0.9);
|
||||
if (money<getMoney()){
|
||||
setMoney(getMoney()-money*0.9);
|
||||
} else {
|
||||
System.out.println("余额不足");
|
||||
}
|
||||
System.out.println("当前余额:"+ getMoney());
|
||||
}
|
||||
}
|
||||
21
src/class23/Test.java
Normal file
21
src/class23/Test.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package class23;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
GoldCard goldCard = new GoldCard("123456", "张三", 123456789, 5000);
|
||||
goldCard.deposit(1000);
|
||||
pay(goldCard);
|
||||
|
||||
SilverCard silverCard = new SilverCard("654321", "李四", 123456789, 5000);
|
||||
pay(silverCard);
|
||||
}
|
||||
public static void pay(Card c){
|
||||
System.out.println("请刷卡,请输入您的消费金额:");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
double money = sc.nextDouble();
|
||||
c.consume(money);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user