java 构造器 血药主题_Java构造方法经典例题

1.在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。

定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。

为MyTime类定义构造方法,以方便创建对象时初始化成员变量。

再定义diaplay方法,用于将时间信息打印出来。

为MyTime类添加以下方法:

addSecond(intsec)

addMinute(intmin)

addHour(inthou)

subSecond(intsec)

subMinute(intmin)

subHour(int hou)

分别对时、分、秒进行加减运算。

Java代码:

packagecom.oricle.demo06;public classMyTime {//私有成员变量

private inthour;private intminute;private intsecond;//构造方法

public MyTime(int hour, int minute,intsecond){this.hour=hour;this.minute=minute;this.second=second;

}public intgetHour() {returnhour;

}public void setHour(inthour) {this.hour =hour;

}public intgetMinute() {returnminute;

}public void setMinute(intminute) {this.minute =minute;

}public intgetSecond() {returnsecond;

}public void setSecond(intsecond) {this.second =second;

}//秒+

public void addSecond(intsec){

second+=sec;

huansuan();

}//分钟+

public void addMinute(intmin){

minute+=min;

huansuan();

}//小时+

public void addHour(inthou){

hour+=hou;

huansuan();

}//秒-

public void subSecond(intsec){

second-=sec;

huansuan();

}//分钟-

public void subMinute(intmin){

minute-=min;

huansuan();

}//小时-

public void subHour(inthou){

hour-=hou;

huansuan();

}//打印显示时间

public voiddisplay()

{

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 voidhuansuan(){//秒(同下)

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;

}

}

}

}

测试类:

packagecom.oricle.demo06;public classTest3 {public static voidmain(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();

}

}

结果演示:

315100c5ca55a0b7acc715f67225af43.png

2.定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性brand(商标)和color(颜色),还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。

编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),并编写构造方法。

编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。

在main方法中测试以上各类。

Vehicles类

public classVehicles {privateString brand;privateString color;//构造方法

publicVehicles(String brand, String color) {this.brand =brand;this.color =color;

}public voidrun() {

System.out.println("我已经开动了");

}public voidshowinfo() {

System.out.println("商标: " +brand);

System.out.println("颜色: " +color);

}

}

Car(小汽车)类

public class Car extendsVehicles {private intseats;//构造方法

public Car(String brand, String color, intseats) {super(brand, color);this.seats =seats;

}public voidshowCar() {super.showinfo();

System.out.println("座位: " + seats + " 个");

}

}

Truck(卡车)类

public class Truck extendsVehicles {private floatload;public Truck(String brand, String color, floatload) {super(brand, color);this.load =load;

}public voidshowTruck() {super.showinfo();

System.out.println("载重 :" + load + "吨");

}

}

测试类

public classTest {public static voidmain(String[] args) {

Vehicles vehicle= new Vehicles("奥迪","黑色");

vehicle.showinfo();

Car car= new Car("桑塔纳","红色", 5);

car.showCar();

Truck truck= new Truck("解放","蓝色",10);

truck.showTruck();

}

}

publicclassTruckextendsVehicles {

privatefloatload;

publicTruck(Stringbrand, Stringcolor,floatload) {

super(brand,color);

this.load=load;

}

publicvoidshowTruck() {

super.showinfo();

System.out.println("载重:"+load+"吨");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值