此题源自老师的讲解才做出来
分为3个类来写属性及方法;
最后加上一个测试类:
//火车票类
public class huochepiao {
private static int number=100 ;//车票数量
private static double price=145;//价格
public static void buyTicket(){
number--;
}
public static int getNumber() {
return number;
}
public static void setNumber(int number) {
huochepiao.number = number;
}
public static double getPrice() {
return price;
}
}
//学生类
import java.util.Scanner;
class xuesheng {
private String name; //名字
private int age; //年龄
private yinhang yinhangka ;//有银行卡
//买火车票
public void buyTicket(){
if(huochepiao.getNumber()>0){
System.out.println("请输入卡号为:"+yinhangka.getAccountID()+"的密码");
Scanner sc = new Scanner(System.in);
String password =sc.next();
if(yinhangka.judge(password)){
//第一步,先扣钱
yinhangka.setBalance(yinhangka.getBalance()-huochepiao.getPrice());
//第二步,票数要改变
//huochepiao.setNumber(huochepiao.getNumber()-1);
huochepiao.buyTicket();
}
}
}
public xuesheng(String name, int age,yinhang yinhangka) {
this.name = name;
this.age = age;
this.yinhangka = yinhangka;
}
public void showInto(){
System.out.println("您好"+this.name+"您的银行卡购买了一张票价为"+
huochepiao.getPrice()+"火车票,当前账号"+yinhangka.getAccountID()
+"余额还有"+yinhangka.getBalance()+"火车票余票还有"+huochepiao.getNumber());
}
}
银行卡类
public class yinhang {
private String accountID;//账号
private String passWord;//密码
private double balance;//余额
public yinhang(String accountID,String passWord,double balance){
this.balance =balance;
this.accountID=accountID;
this.passWord=passWord;
}
public String getAccountID() {
return accountID;
}
public void setAccountID(String accountID) {
this.accountID = accountID;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
//判断密码
public boolean judge(String passWord){
if(passWord.equals(this.passWord)){
return true;
}
return false;
}
//支付功能
public void pay(double money){
if(money<this.balance){
this.balance-=money;
}
}
//查看余额
public void showBalance(){
System.out.println(this.accountID+"余额是:"+this.balance);
}
}
//测试类 唯一执行main函数的类
public class xianshi {
public static void main(String[] args) {
yinhang y1 =new yinhang("56214798956325326","631875",22347);
xuesheng x1=new xuesheng("小王",25,y1);
x1.buyTicket();
x1.showInto();
yinhang y2 =new yinhang("6875126547","631874",800);
xuesheng x2=new xuesheng("小张",25,y2);
x2.buyTicket();
x2.showInto();
}
}