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. Ubuntu下rsyslog审计用户bash操作命令、收集、写入MySQL

    服务端 2台服务端:10.25.109.64.10.45.18.133 1.rsyslog最新版本安装 sudo add-apt-repository ppa:adiscon/v8-stable su ...

  2. JOS环境搭建

    想写一个OS很久了,今天开始正式动工了!! 大家都知道操作系统是计算机科学中十分重要的一门基础学科.但是以前在学习这门课时,仅仅只是把目光停留在课本上一些关于操作系统概念上的叙述,并不能对操作系统有着 ...

  3. Nginx实战(三) 日志配置与切割

    访问日志主要记录客户端访问Nginx的每一个请求,格式可以自定义.通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息. Nginx中访问日志相关指令主要有两条,一条是 ...

  4. Hadoop_配置Hadoop开发环境(Eclipse)

    通常我们可以用Eclipse作为Hadoop程序的开发平台. 1)  下载Eclipse 下载地址:http://www.eclipse.org/downloads/ 根据操作系统类型,选择合适的版本 ...

  5. java防止表单重复提交的几种方法

    转载大神 1. 使用session同步和token机制来防止并发重复提交 https://blog.csdn.net/hejingyuan6/article/details/50487777 2. S ...

  6. jcmd jmap应用:一个String经典笔试题的验证

    笔试题: String strA = new String("123123");这一行中创建了几个String对象?? public class StringHeapCountTe ...

  7. Testlink安装后配置修改

    1.1. config.inc.php 1.1.1. 日志路径配置 /** *  @var string Path to store logs - *for security reasons (see ...

  8. Vertical roller mill from SBM

    Vertical roller mill has many different forms, but it works basically the same. All of these forms o ...

  9. 【Linux】linux下vi命令大全

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  10. URLConnection简单使用

    1 --get提交 //资源url地址 URL url = new URL("http://localhost:8080/test/TestServlet?id=10"); //获 ...