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 ...
随机推荐
- AT2689 Prime Flip
传送门 这个题是真的巧妙 首先一个很巧妙的思路,差分 考虑假如\(a_i!=a_{i-1}\),则\(b_i=1\),否则\(b_i=0\) 这样一来,一个区间的翻转就变成了对于两个数的取反了 然后我 ...
- Kipmi0 占用CPU 100%
查看当前正在运行的进程发现kipmi0进程占用率达到100% kipmi -% of the CPUs, %/% comes when the machine is idle? A second is ...
- 如何简单的理解TDD与DDT
TDD:TEST-DRIVEN Development 测试驱动开发究竟是什么意思?如何理解测试驱动开发? 举个红绿条简单的例子: 1.编写测试代码 2.编译运行测试代码,肯定会失败,因为实现代码还没 ...
- Python爬取天气预报
实现爬取一天的天气预报 非常简单的一个小爬虫,利用的也是基本的request.BeautifulSoup.re库,算是简单的上手一个小测试吧 from urllib.request import ur ...
- Selenium----Selenium WebDriver /RC工作原理
1.Selenium RC 工作原理 说明:客户端库文件将命令传递给server.接着server使用selenium-core的javaScript命令传递给浏览器,浏览器会使用自带的javaScr ...
- python3——“->”的含义
->:标记返回函数注释,信息作为.__annotations__属性提供,__annotations__属性是字典.键return是用于在箭头后检索值的键.但是在Python中3.5,PEP 4 ...
- svn报错cleanup failed–previous operation has not finished; run cleanup if it was interrupte...
今天在svn提交的时候它卡顿了一下,我以为已经提交完了,就按了一下,结果就再也恢复不了,也继续不了了... 报错 cleanup failed–previous operation has not f ...
- <probing> 元素指定扩展Asp.Net加载程序集位置
下面的示例说明如何指定运行库应在其中搜索程序集的应用程序基子目录. <configuration> <runtime> <assemblyBinding xmln ...
- python随笔---录入月份的值,输出对应的季节
首先获取一个输入,加判断,输入对应的月份,季节判定根据气象划分法(气象划分法:在气象部门,通常以阳历3-5月为春季,6-8月为夏季,9-11月为秋季,12月-来年2月为冬季,并且常常把1.4.7.10 ...
- mysql登陆远程数据库
1.登陆mysql 2.e mysql; 3.比如用户名密码为root/root. 你想root使用root从任何主机连接到mysql服务器的话. @’ ’后面加ip地址一般般为localhost或者 ...