1.在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。
为MyTime类添加以下方法:
addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou)
分别对时、分、秒进行加减运算。
Java代码:
package com.oricle.demo06; public class MyTime { //私有成员变量 private int hour; private int minute; private int second; //构造方法 public MyTime(int hour, int minute,int second){ this.hour=hour; this.minute=minute; this.second=second; } public int getHour() { return hour; } public void setHour(int hour) { this.hour = hour; } public int getMinute() { return minute; } public void setMinute(int minute) { this.minute = minute; } public int getSecond() { return second; } public void setSecond(int second) { this.second = second; } //秒+ public void addSecond(int sec){ second +=sec; huansuan(); } //分钟+ public void addMinute(int min){ minute +=min; huansuan(); } //小时+ public void addHour(int hou){ hour +=hou; huansuan(); } //秒- public void subSecond(int sec){ second -=sec; huansuan(); } //分钟- public void subMinute(int min){ minute -=min; huansuan(); } //小时- public void subHour(int hou){ hour -=hou; huansuan(); } //打印显示时间 public void display() { huansuan();//调用时间换算判断 String h=null; String m=null; String s=null; //判断输入的时间为两位数 //小时 if(hour<10){ h="0"+hour; }else{ h=hour+""; } //秒 if(second<10){ s="0"+second; }else{ s=second+""; } //分钟 if(minute<10){ m="0"+minute; }else{ m=minute+""; } //打印输出该时间 System.out.println(h+"小时"+m+"分钟"+s+"秒"); } public void huansuan(){ //秒(同下) if(second>=60){ minute =minute+second/60;//分钟加上秒数多的部分,即秒转换为分钟 second =second%60;//描述剩余部分 }else if(second<0){ if(second%60!=0){ minute=minute+(second/60-1);//-1是秒从分钟借1(分钟) second=second%60+60;//+60是从分钟借1,加60秒(一分钟) }else{ minute=minute+second/60; second=second%60; } } //分钟 if(minute>=60){ hour=hour+minute/60; minute=minute%60; }else if(minute<0){ if(minute%60!=0){ hour=hour +(minute/60-1); minute=minute%60+60; }else{ hour=hour +minute/60; minute=minute%60; } } //小时 if(hour>=24){ hour=hour%24; }else if(hour<0){ if(hour%24!=0){ hour=hour%24+24; }else{ hour=hour%24; } } } }
测试类:
package com.oricle.demo06; public class Test3 { public static void main(String[] args) { MyTime t=new MyTime(10,10,-20); //当前时间 t.display(); System.out.println(); //小时+ t.addHour(1); t.display(); //分钟+ t.addMinute(10); t.display(); //秒+ t.addSecond(-70); t.display(); System.out.println(); //小时- t.subHour(1); t.display(); //分钟- t.subMinute(10); t.display(); //秒- t.subSecond(30); t.display(); } }
结果演示:
2.定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。
编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。
编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。
在main方法中测试以上各类。
Vehicles类
public class Vehicles { private String brand; private String color; //构造方法 public Vehicles(String brand, String color) { this.brand = brand; this.color = color; } public void run() { System.out.println("我已经开动了"); } public void showinfo() { System.out.println("商标: " + brand); System.out.println("颜色: " + color); } }
Car(小汽车)类
public class Car extends Vehicles { private int seats; // 构造方法 public Car(String brand, String color, int seats) { super(brand, color); this.seats = seats; } public void showCar() { super.showinfo(); System.out.println("座位: " + seats + " 个"); } }
Truck(卡车)类
public class Truck extends Vehicles { private float load; public Truck(String brand, String color, float load) { super(brand, color); this.load = load; } public void showTruck() { super.showinfo(); System.out.println("载重 :" + load + "吨"); } }
测试类
public class Test { public static void main(String[] args) { Vehicles vehicle = new Vehicles("奥迪","黑色"); vehicle.showinfo(); Car car = new Car("桑塔纳","红色", 5); car.showCar(); Truck truck = new Truck("解放","蓝色",10); truck.showTruck(); } }
publicclass Truck extends Vehicles {
privatefloatload;
public Truck(String brand, String color, floatload) {
super(brand, color);
this.load = load;
}
publicvoid showTruck() {
super.showinfo();
System.out.println("载重:" + load + "吨");
}
}