JAVA基础类与对象实现模拟火车站购票功能

要求:1) 创建一个证件类,有两个子类凾别是身仹证和学生证
2) 创建一个车票类
3) 创建一个火车站类,售票方法,方法参数有证件、日期、目的地,返回值为车

票。如果证件是学生证,车票打对折;如果为身仹证,原价。

4) 创建测试类,输出车票的信息;

Card类为证件类父类别;

StuCard类为子类别学生证类;

IDcard类为子类别身份证类;

代码块如下

1.Card类如下:

public class Card {
    String name;
    int age;
    String sex;
    String sname;
    public  Card(String name,int age,String sex,String sname){
        this.name=name;
        this.age=age;
        this.sex=sex;
        this.sname=sname;
    }
    public void buyTicket(){
        Station station=new Station("无锡中心火车站","锡沪路");
    System.out.println(station.saleTicket(this,"2016-7-29","信阳"));
    }
}




2.StuCard类如下:

public class StuCard extends Card{
    
    public StuCard(String name,int age,String sex,String sname){
        super(name,age,sex,sname);
    }


    
}
3.IDcard类如下:

public class IDcard extends Card{
		public IDcard(String name,int age,String sex,String sname){
			super(name,age,sex,sname);
		}
}
4.Ticket类如下:

public class Ticket {
	String from;
	String to;
	String date;
	String trainNum;
	float price;
	String name;
	String sex;
	int age;

      public String toString() {
		return "Ticket [from=" + from + ", to=" + to + ", date=" + date + ", trainNum=" + trainNum + ", price=" + price+ "]";
	}
}
5.Station类如下:

public class Station {
	String name;
	String location;
	public Station (String name,String location){
		this.location=location;
		this.name=name;
	}
	public Ticket saleTicket(Card card,String date,String to){
		Ticket t=new Ticket();
		t.date=date;
		t.from="无锡";
		t.to=to;
		if("student".equals(card.sname)){
			t.price=107/2;
		}else{
			t.price=107;
		}
		t.trainNum="K462";
		t.name=card.name;
		t.sex=card.sex;
		t.age=card.age;
		return t;
	} 
}

6.testTicket测试类内容如下:

public class testTicket {
	public static void main(String[] args) {
		Card person1=new StuCard("任人人",18,"女","student");
		person1.buyTicket();
		System.out.println(person1);
	}
}


打印出来的结果如图所示;


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值