题目一
定义一个接口,其中包含一个display()方法用于显示信息:通知类、汽车类、广告类均要实现该接口,以显示‘通知内容’、汽车油量“”、广告信息“”,试编程实现并测试类的设计。创建的对象用接口引用,并通过接口引用变量执行display()方法。
解答
package homework;
public interface news {
void display();
}
class inform implements news{
public void display(){
System.out.println("通知信息");
}
}
class car implements news{
public void display(){
System.out.println("汽车油量");
}
}
class ad implements news{
public void display(){
System.out.println("广告消息");
}
}
class test{
public static void main(String[] args) {
news a=new inform();
a.display();
a=new car();
a.display();
a=new ad();
a.display();
}
}
题目二
使用java API中的Date类或者Calendar类下的方法去获取当前时间并且随机生成日期
年份在:2000年-2050之间的随机数,月份:1-12的随机数,日:1-31的随机数,时:1-24的随机数,分:0-59的随机数,秒:0-59的随机数。要按照以下进行日期格式化输出。并且判断当前时间是否在随机日期的后面。
解答(个人能力有限,有其他方法请讨论)
方法一(使用date类)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class time2 {
public static void main(String[] args) {
//第一部分:当前时间
Date newTime = new Date();
//创建dateFormatter对象实例并定义好转换格式
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy年-MM月-dd日 E \na hh时:mm分:ss秒");
String formatDate = dateFormatter.format(newTime);
System.out.println("当前时间为:" + formatDate);//打印当前时间
//第二部分:随机自定义时间
Random ran = new Random();
int year = ran.nextInt(51)+2000; //年份在:2000年-2050之间的随机数,
int month = ran.nextInt(12)+1;//月份:1-12的随机数,
int day = ran.nextInt(31)+1;//日:1-31的随机数,
int hour = ran.nextInt(24)+1;//时:1-24的随机数,
int minute = ran.nextInt(60);//分:0-59的随机数,
int second = ran.nextInt(60);//秒:0-59的随机数。
//Randate为随机时间字符串
String Randate = year + "-" + month + "-" + day+ " " + hour+ ":" + minute + ":" + second ;
// 创建dateFormatter2对象实例并定义好转换格式,给随机生成的时间用
SimpleDateFormat dateFormatter2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//把字符串Randate转换成时间,date为随机时间
Date date = null;
try {
date = dateFormatter2.parse(Randate);
} catch (ParseException e) {
e.printStackTrace();
}
//随机时间格式化输出
String RanDate = dateFormatter.format(date);
System.out.println("随机自定义时间为:" + RanDate);
//第三部分:当前时间位于自定义时间之后吗?
System.out.println("\n当前时间位于自定义时间之后:" + (newTime.getTime() > date.getTime()));
}
}
方法二 (使用Calendar类 )
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class time2_1 {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyy年-MM月-dd日 E \na hh时:mm分:ss秒");
//输出当前时间
Calendar c1 = Calendar.getInstance();
c1.getTime();
System.out.println("当前时间为:" + sdf.format(c1.getTime()));
//随机生成时间
Calendar c2 = Calendar.getInstance();
int y = (int)(Math.random()*51 + 2000);
int M = (int)(Math.random()*12 + 1);
int d = (int)(Math.random()*31 + 1);
int h = (int)(Math.random()*12 + 1);
int m = (int)(Math.random()*60);
int s = (int)(Math.random()*60);
c2.set(y, M-1, d, h, m, s);
System.out.println("随机自定义时间为:" + sdf.format(c2.getTime()));
//当前时间与随机时间比较
boolean res = c1.after(c2);
System.out.println("当前时间位于自定义时间之后:" + res);
}
}