永发信息网

Java程序

答案:2  悬赏:0  手机版
解决时间 2021-02-07 11:41
  • 提问者网友:最美的风景
  • 2021-02-06 13:38
public class Card
{
private String name;

public Card()
{
name = "";
}

public Card(String n)
{
name = n;
}

public String getName()
{
return name;
}

public boolean isExpired()
{
return false;
}

public String toString()
{
return "Card holder: " + name;
}

/********************
public class IDCard extends Card{
private String idnum;

public IDCard(String name,String id)
{
super(name);
idnum = id;
}

public String toString()
{
return "Card holder: " +super.toString()+"id number: "+idnum;
}
}

/******************
public class DriverLicense extends IDCard{
private int year;

public DriverLicense(String n, String id, int year) {
super(n, id);
this.year = year;
}
public String toString()
{
return "Card holder: " +super.toString()+"year: "+year;
}
/***************
超类card定义了一个isExpired方法用来一直返回false。但是这种方法是不适用于Driver License。要求写DriverLicense.isExpired()用来检查driver license是否过期(i.e., the expiration year isless than the current year).。获取日期需要的方法、常量在抽象类Calendar中实现。由具体类GregorianCalendar 继承。

创建:类calendar
GregorianCalendar calendar = new GregorianCalendar();
然后在类GregorianCalendar 使用常量Calendar.YEAR 和方法get获取当前年份,Calendar.YEAR返回当前年份, 通过比较返回的值与 DriverLicense 中的 expYear 可知卡是否过期。(ID card 不会过期)
calendar.get(Calendar.YEAR)

分数不多了,怕没人回答,所以之后再加分。
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-02-06 14:29
public class DriverLicense extends IDCard {
private int year;

public DriverLicense(String n, String id, int year) {
super(n, id);
this.year = year;
}

@Override
public String toString() {
return "Card holder: " + super.toString() + "year: " + year;
}
@Override
public boolean isExpired() {
GregorianCalendar calendar = new GregorianCalendar();
return year < calendar.get(Calendar.YEAR);
}
}
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-02-06 14:53
楼主是这样子的:一个java文件中只有一个public class,而且该public class内必须要有一个main函数。在上面的程序中public class phonecard 内没有main函数,所以程序报错。把public class phonecard 的public去掉,并且把class testphonecard 改为public class testphonecard即可。 ps:我看了你的phonecard中,下面if语句判断有点问题。如果你要比较a,b或(c,d)的值是否相等不能用a==b(c==d),这样只是判断a和b是否是同一个对象引用而不是比较它们的值是否相同,你应该改为a.equals(b)即可,如果值相同则返回true。 public void equal(string a,string b,string c,string d){ if((a==b)&&(c==d)){ system.out.println("您的卡号为"+a); ok=1; } ..... .... }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯