java题目

题目一

定义一个接口,其中包含一个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的随机数。要按照以下进行日期格式化输出。并且判断当前时间是否在随机日期的后面。

java题目_第1张图片

解答(个人能力有限,有其他方法请讨论)

方法一(使用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);
		
		
		
	}
}

你可能感兴趣的:(java)