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 + "吨");

}

}

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman",serif;}

Java构造方法经典例题的更多相关文章

  1. Java数组经典例题

    数组中元素的求和 public class T02 { public static void main(String[] args) { int[][]arr=new int[][]{{1,2,3,4 ...

  2. Java之线程通信的应用:经典例题:生产者/消费者问题

    /** * 线程通信的应用:经典例题:生产者/消费者问题 * * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品, * 店员一次只能持有固定数量 ...

  3. C语言经典例题100

    C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...

  4. C语言中的经典例题用javascript怎么解?(一)

    C语言中的经典例题用javascript怎么解?(一) 一.1+2+3+……+100=?        <script type="text/javascript">  ...

  5. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】

    首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...

  6. 到底什么是dp思想(内含大量经典例题,附带详细解析)

    期末了,通过写博客的方式复习一下dp,把自己理解的dp思想通过样例全部说出来 说说我所理解的dp思想 dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个 最 ...

  7. Java构造方法与析构方法实例剖析

    Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...

  8. Java 生产者消费者 & 例题

    Queue http://m635674608.iteye.com/blog/1739860 http://www.iteye.com/problems/84758 http://blog.csdn. ...

  9. java设计模式大全 Design pattern samples in Java(最经典最全的资料)

    java设计模式大全 Design pattern samples in Java(最经典最全的资料) 2015年06月19日 13:10:58 阅读数:11100 Design pattern sa ...

随机推荐

  1. [转]黑幕背后的__block修饰符

    http://www.cocoachina.com/ios/20150106/10850.html 我们知道在Block使用中,Block内部能够读取外部局部变量的值.但我们需要改变这个变量的值时,我 ...

  2. [转] 出现( linker command failed with exit code 1)错误总结

    这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. ...

  3. xml 的使用和解析 及解析工具

    xml 一.xml简介 1. 什么是xml XML:Extensiable Markup Language,可扩展标记语言.和HTML有语法相似之处,也有作用上的不同: 和html相似: 都是由一堆标 ...

  4. maven包依赖问题排除

    今天新引入一个包后,运行报如下错误: Exception in thread "main" java.lang.NoClassDefFoundError: scala/Produc ...

  5. spring boot war

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  6. [题解](线段树最大连续子段和)POJ_3667_Hotel

    题意:1.求一个最靠左的长x的区间全部为0,并修改为1,输出这个区间的左端点 2.修改一个区间为0 实际上是维护最大连续子段和,原来也写过 大概需要维护一个左/右最大子段和,当前这段最大子段长,再维护 ...

  7. (转)Mysql数据库之Binlog日志使用总结Linux下用户组、文件权限详解

    Linux下用户组.文件权限详解 原文:http://blog.csdn.net/sdulibh/article/details/51566772 用户组 在linux中的每个用户必须属于一个组,不能 ...

  8. 移动开发,Webapp 淘宝手机 rem 布局

    (function (doc, win) { var docEl = doc.documentElement, resizeEvt ="orientationchange"in w ...

  9. window.open 打开Excel或者Word 无权限问题

    场景:后端C# ashx 前端:js js在对ashx返回结果进行window.open(url)  url为后端保存excel的一个地址 提示:无操作权限 url:为后端处理后,服务器上一个完整的路 ...

  10. js 和C# ashx之间数组参数传递问题

    js在进行ajax提交时,如果提交的参数是数组,js无法直接进行提交,及时提交上去,解析也是比较麻烦 ajax在提交数组时,需要设置参数:  traditional: true,  //参数作为数组传 ...