Java部分习题
2018学年9月
实验编号 姓 名 学 号 班 级
2018技能与工程训练
(Java方向)
实验地点 指导教师
九章楼N6-307
郑金龙
计算机科学与工程学院
2018
1、两只完全相同的宠物(重写Object类的equals方法)
1) 编写类Cat,在该类中定义4个成员变量:name表示名字、age表示年龄、weight表示重量,color表示颜色。重写equals方法来比较对象的属性是否相同,重写toString()方法来方便输出对象信息。代码如下:
import java.awt.Color;
public class Cat {
private String name; private int age;
private double weight; private Color color;
public Cat(String name, int age, double weight, Color color) { this.name = name; this.age = age;
this.weight = weight; this.color = color; }
public Boolean equals(Object o){
if (this == o) { //如果两个猫咪是同一个对象则相同 return true; }
if (o == null) { //如果两个猫咪有一个为 null 则不同 return false; }
if (getClass() != o.getClass()) {//如果两个猫咪的类型不同则不同 return false; }
Cat cat = (Cat) o;
return name.equals(cat.name) && (age == cat.age) && (weight == cat.weight) && (color.equals(cat.color)); // 比较猫咪的属性
}
public String toString(){
StringBuilder sb = new StringBuilder();
sb.append(\"名字:\" + name + \"\\n\"); sb.append(\"年龄:\" + age + \"\\n\"); sb.append(\"重量:\" + weight + \"\\n\"); sb.append(\"颜色:\" + color + \"\\n\"); return sb.toString();
}
public int hashcode(){ } }
2) 编写程序生成若干个相同或不同的Cat对象,测试其中自己编写的方法
public static class Test {
public static void main(String[] args) {
Cat cat1 = new Cat(\"Java\创建猫咪 1 号
Cat cat2 = new Cat(\"C++\创建猫咪 2 号
Cat cat3 = new Cat(\"Java\创建猫咪 3 号
System.out.println(\"猫咪 1 号:\" + cat1); //输出猫咪 1 号 System.out.println(\"猫咪 2 号:\" + cat2); //输出猫咪 2 号
System.out.println(\"猫咪 3 号:\" + cat3); //输出猫咪 3 号 System.out.println(\" 猫 咪 1 号 是 否 与 猫 咪 2 号 相 同 : \" +
cat1.equals(cat2)); //比较是否相同
System.out.println(\" 猫 咪 1 号 是 否 与 猫 咪 3 号 相 同 : \" +
cat1.equals(cat3)); //比较是否相同 } }
2、计算并输出当前时间(Calendar类的使用)
说明:GregorianCalendar类是Calendar类的一个具体类,它提供了大多数国家和地区的日历系统。
编写一个类,在该类中定义2个静态方法:format方法用于将数字格式化为长度为2的字符串;getTime方法,用了获取虚拟机的当前时间。然后在main方法中,调用getTime方法获取当前时间并输出。
package lianxi9;
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale;
public class da {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
}
}
int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND);
System.out.println(year + \"-\" + month + \"-\" + day + \" \" + hour + \":\"
SimpleDateFormat format = new SimpleDateFormat(\"yyyy-MM-dd System.out.println(format.format(calendar.getTime()));
+ minute + \":\" + second);
HH:mm:ss\", Locale.CHINA);
3、日期格式有效性判断(SimpleDateFormat类的使用)
SimpleDateFormat类是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期-文本)、解析(文本-日期)和规范化。
编写一个类Test,在main方法中以一定的格式输出当前日期-时间
import java.util.*;
import java.text.SimpleDateFormat; public class Test {
public static void main(String[] args) {
Date date = new Date();//获取当前日期
SimpleDateFormat df = new SimpleDateFormat(\"yyyy-MMM-dd kk:mm:ss a\");
System.out.println(df.format(date));//按yyyy-MMM-dd kk:mm:ss a这个格式来格式化date
SimpleDateFormat df1 = new SimpleDateFormat( \"yyyyy.MMMMM.dd GGG hh:mm aaa\");
System.out.println(df1.format(date));//按yyyyy.MMMMM.dd GGG hh:mm aaa这个格式来格式化date
} }