Java构造方法经典例题
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构造方法经典例题的更多相关文章
- Java数组经典例题
		
数组中元素的求和 public class T02 { public static void main(String[] args) { int[][]arr=new int[][]{{1,2,3,4 ...
 - Java之线程通信的应用:经典例题:生产者/消费者问题
		
/** * 线程通信的应用:经典例题:生产者/消费者问题 * * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品, * 店员一次只能持有固定数量 ...
 - C语言经典例题100
		
C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...
 - C语言中的经典例题用javascript怎么解?(一)
		
C语言中的经典例题用javascript怎么解?(一) 一.1+2+3+……+100=? <script type="text/javascript"> ...
 - 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】
		
首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...
 - 到底什么是dp思想(内含大量经典例题,附带详细解析)
		
期末了,通过写博客的方式复习一下dp,把自己理解的dp思想通过样例全部说出来 说说我所理解的dp思想 dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个 最 ...
 - Java构造方法与析构方法实例剖析
		
Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...
 - Java 生产者消费者 & 例题
		
Queue http://m635674608.iteye.com/blog/1739860 http://www.iteye.com/problems/84758 http://blog.csdn. ...
 - java设计模式大全 Design pattern samples in Java(最经典最全的资料)
		
java设计模式大全 Design pattern samples in Java(最经典最全的资料) 2015年06月19日 13:10:58 阅读数:11100 Design pattern sa ...
 
随机推荐
- Gson本地和服务器环境不同遇到的Date转换问题 Failed to parse date []: Invalid time zone indicator
			
GoogleGson在处理Date格式时有个小陷阱,在不同环境中部署时可能会遇到问题. Gson默认处理Date对象的序列化/反序列化是通过一个SimpleDateFormat对象来实现的,通过下面的 ...
 - Java基础--常用API--java.lang.Object
			
一.简述 1.Object类是所有类的父类,即直接或间接的继承java.lang.Object类.省略了extends Object. 2.方法 (1)protected native Object ...
 - 03-----body标签中的相关标签
			
今日主要内容: 列表标签 <ul>.<ol>.<dl> 表格标签 <table> 表单标签 <form> 一.列表标签 1.无序列表< ...
 - Linux中vim编辑器常用操作技巧
			
Normal 0 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-styl ...
 - CentOS yum安装mcrypt
			
CentOS yum安装mcrypt 本篇排错的前提是只想用yum安装,不想使用源码包编译安装. php依赖一下包: #yum install libmcrypt libmcrypt-deve ...
 - java+elipse安装及部分问题
			
1. elipse下载.安装.jdk环境配置教程: https://www.cnblogs.com/ForestDeer/p/6647402.html 2.eclipse使用教程: https://j ...
 - 本地添加Maven管理
			
Maven下载安装: 1 .Maven下载地址:http://maven.apache.org/ 2 .下载解压到本地指定目录:记住该路径! 3 .新建/修改环境变量-系统变量: 名:M2_HOME ...
 - 7天学完Java基础之0/7
			
笔记-7天学完Java基础之0/7 1.常用命令提示符(cmd) 启动:Win+R,输入cmd
 - 【Mood-13】Android --如何从初级工程师进化为高级工程师
			
一 明确自我定位 现在你是初级工程师,但是你想当个高级工程师,所 以,你就要给自己定个目标,即:我是要成为高级工程师的男人.有了这个定位,并且努力朝着这个目标去努力,然后内心深处就会有一个感觉,这个 ...
 - UINavigationControlle 之 UINavigationBar及navigationItem关系探讨
			
在设置标题栏时常常遇到修改标题.修改返回按钮标题.增加一些按钮等需求,实现过程中一般会把UINavigationController.UINavigationBar.navigationItem及se ...