编程练习题:(待更新.........)

(10.2~10.3节)+(10.4~10.8节)+(10.9节)+(第10.10~10.11节)

(10.2~10.3节)

*10.1(时间类Time)

首先普及一下(什么是GMT时间)

GMT时间(格林尼治标准时间)一般指世界时间, 即0时区的区时,比北京时间(东8区)晚8小时;所以,
GMT时间+8小时所得结果就是北京时间。

这是我运行时的时间: 下午15:46

对象1运行的GMT时间与我当前的时间差8小时。(运行正确)

package p10;public class Time {private long hour;private long minute;private long second;//无参构造方法public Time() {//获取当前时间,可以用 System.currentTimeMillis()方法获取当前总的毫秒数long totalMilliseconds=System.currentTimeMillis();// 总的毫秒数/1000=总的秒数long totalSeconds=totalMilliseconds/1000;//总的秒数%60=当前秒数long currentSeconds=totalSeconds%60;this.second=currentSeconds;// 总的秒数/60=总的分钟数long totalMinutes=totalSeconds/60;//总的分钟数%60=当前分钟数long currentMinutes=totalMinutes%60;this.minute=currentMinutes;// 总的分钟数/60=总的小时数long totalHours=totalMinutes/60;//总小时数%24=当前小时数long currentHours=totalHours%24;this.hour =currentHours;}public Time(long elapseTime) {// 总的毫秒数/1000=总的秒数long totalSeconds=elapseTime/1000;//总的秒数%60=当前秒数long currentSeconds=totalSeconds%60;this.second=currentSeconds;// 总的秒数/60=总的分钟数long totalMinutes=totalSeconds/60;//总的分钟数%60=当前分钟数long currentMinutes=totalMinutes%60;this.minute=currentMinutes;// 总的分钟数/60=总的小时数long totalHours=totalMinutes/60;//总小时数%24=当前小时数long currentHours=totalHours%24;this.hour =currentHours;        }public Time(long hour, long minute, long second) {this.hour=hour;this.minute=minute;this.second=second;}public long getHour() {return hour;}public long getMinute() {return minute;}public long getSecond() {return second;}public void setTime(long elapseTime) {// 总的毫秒数/1000=总的秒数long totalSeconds=elapseTime/1000;//总的秒数%60=当前秒数long currentSeconds=totalSeconds%60;this.second=currentSeconds;// 总的秒数/60=总的分钟数long totalMinutes=totalSeconds/60;//总的分钟数%60=当前分钟数long currentMinutes=totalMinutes%60;this.minute=currentMinutes;// 总的分钟数/60=总的小时数long totalHours=totalMinutes/60;//总小时数%24=当前小时数long currentHours=totalHours%24;this.hour =currentHours;}
}
package p10;public class Test1 {public static void main(String[] args) {Time object1=new Time();Time object2=new Time(555550000);//显示object1的时间System.out.println("object1's Current time is "+object1.getHour()+":"+object1.getMinute()+":"+object1.getSecond()+" GMT");//显示object2的时间System.out.println("object2's Current time is "+object2.getHour()+":"+object2.getMinute()+":"+object2.getSecond()+" GMT");}}

10.2(BMI类)

10.3(MyInteger类)

package p10;public class MyInteger {//存储这个对象表示的int值public int value;public MyInteger(int value) {this.value=value;}public int getInt() {return this.value;}//判断是否是偶数,偶数:能被2整除的数,包括正偶数、负偶数和零public boolean isEven() {if(getInt() % 2 == 0)return true;else return false;}//判断是否是奇数,奇数:不能被2整除的数public boolean isOdd() {if(getInt() % 2 != 0)return true;elsereturn false;}//素数:在大于1的整数中,只能被1和这个数本身整除的数,如2,3,5,7,11public boolean isPrime() {for(int divisor=2; divisor<=getInt()/2; divisor++) {if(getInt()%divisor==0) {return false;}}return true;}public static boolean isEven(int value) {if(value%2==0)return true;elsereturn false;}public static boolean isOdd(int value) {if(value%2!=0)return true;elsereturn false;}public static boolean isPrime(int value) {for(int divisor=2; divisor<=value/2; divisor++) {if(value%divisor==0) {return false;}}return true;}public static boolean isEven(MyInteger myInteger) {if(myInteger.value % 2 == 0)return true;elsereturn false;}public static boolean isOdd(MyInteger myInteger) {if(myInteger.value % 2 != 0)return true;elsereturn false;}public static boolean isPrime(MyInteger myInteger) {for(int divisor=2; divisor<=myInteger.value/2; divisor++) {if(myInteger.value % divisor == 0) {return false;}}return true;}public boolean equals(int count) {if(this.value==count)return true;elsereturn false;}public boolean equals(MyInteger myInteger) {if(myInteger.value==this.value)return true;elsereturn false;}public static int parseInt(char[] ch) {return Integer.valueOf(new String(ch));}public static int parseInt(String s) {return Integer.valueOf(s);}
}

10.4(MyPoint类) 

package p10;public class MyPoint {public double x;public double y;public double getX() {return x;}public double getY() {return y;}public MyPoint() {this.x=0;this.y=0;}public MyPoint(double x, double y) {this.x=x;this.y=y;}public double distance(MyPoint myPoint) {return Math.sqrt(Math.pow((this.x-myPoint.x),2) + Math.pow((this.y-myPoint.y),2));}public double distance(double x, double y) {return Math.sqrt(Math.pow((this.x-x),2) + Math.pow((this.y-y),2));}
}
package p10;public class Test4 {public static void main(String[] args) {MyPoint a=new MyPoint();MyPoint b=new MyPoint(10,30.5);System.out.printf("两点间的距离为:%.2f", a.distance(b));}}

(10.4~10.8节)

*10.5(显示素数因子)

书上写有这个类,在本书第320页,类的实现也有:

package p10;public class StackOfIntegers {private int[] elements;private int size;public static final int DEFAULT_CAPACITY=16;public StackOfIntegers() {this(DEFAULT_CAPACITY);}public StackOfIntegers(int capacity) {elements=new int[capacity];}public void push(int value) {if(size>=elements.length) {int[] temp=new int[elements.length*2];System.arraycopy(elements, 0, temp, 0, elements.length);elements=temp;}elements[size++]=value;}public int pop() {return elements[--size];}public int peek() {return elements[size-1];}public boolean empty() {return size==0;}public int getSize() {return size;}
}
package p10;import java.util.Scanner;public class Test5 {public static void main(String[] args) {Scanner input=new Scanner(System.in);System.out.print("请输入一个正整数:");int number=input.nextInt();input.close();//创建一个栈类StackOfIntegers stack=new StackOfIntegers();int i=2;while(number/i!=0) {if(number%i==0) {number=number/i;stack.push(i);//System.out.println(i);显示最小因子}else if(number%i!=0){i++;}}//先进先出后进后出while(!stack.empty()) {System.out.print(stack.pop()+" ");}}}

*10.5(显示素数)

package p10;public class Test6 {public static void main(String[] args) {//创建一个栈类StackOfIntegers stack=new StackOfIntegers();PrintPrimeNumbers(50);//先进先出后进后出while(!stack.empty()) {System.out.print(stack.pop()+" ");}}//书上183页代码private static void PrintPrimeNumbers(int i) {final int NUMBER_OF_PRIMES_PER_LINE=10;int count=0;int number=2;while(count<i) {if(isPrime(number)) {count++;if(count % NUMBER_OF_PRIMES_PER_LINE==0) {//显示小于120的所有素数if(number<120) { System.out.printf("%-5s\n", number);}}else//显示小于120的所有素数if(number<120) { //显示小于120的所有素数System.out.printf("%-5s", number);}}number++;}}private static boolean isPrime(int number) {for(int divisor=2; divisor<=number/2; divisor++) {if(number%divisor==0) {return false;}}return true;}}

**10.7(游戏:ATM机)

演示结果:

package p10;import java.util.Scanner;import p9.Account;//账户类public class Test7 {public static void main(String[] args) {//首先创建一个对象数组:创建一个有10个账户的数组Account[] accountArray=new Account[100];//初始化对象数组for(int i=0; i<accountArray.length; i++) {accountArray[i]=new Account(i,100);}//我让这个大循环进行100次int n=0;while(n<100) {n++;System.out.println("循环第"+n+"次");int id=-1;Scanner input=new Scanner(System.in);System.out.print("Enter an id:");//判断 id 是否正确while(id==-1) {String s=input.nextLine();if( Character.isDigit(s.charAt(0))) {id=s.charAt(0);}else {System.out.print("Please input an id that is valid:");}}//主菜单循环int choose=-2;while(choose!=4) {System.out.println();//输出主菜单System.out.println(" Main menu \n"+" 1: check balance \n"+" 2: withdraw \n"+" 3: deposit \n"+" 4: exit");System.out.print("Enter a choice: ");choose=input.nextInt();if(choose==1) {System.out.println("The balance is "+accountArray[id].getBalance());  }else if(choose==2) {System.out.print("Enter an amount to withdraw:");int withdraw=input.nextInt();accountArray[id].withDraw(withdraw);}else if(choose==3) {System.out.print("Enter an amount to deposit:");int deposit=input.nextInt();accountArray[id].deposit(deposit);}else if(choose==4) {System.out.println();break;//退出循环}} }}}
package p9;import java.util.Date;public class Account {public int id=0;//用户名public double balance=0;//余额public double annualInteresRate=0;//当前利率public java.util.Date dateCreated;//存储开户时间//无参构造方法public Account(){}//有参构造方法public Account(int id, double balance){this.id=id;this.balance=balance;}public int getId(){return id;}public double getBalance() {return balance;}public double getAnualInterestRate() {return annualInteresRate;}public void setId(int id){this.id=id;}public void setBalance(double balance) {this.balance=balance;}public void setAnnualInterestRate(double annualInterestRate) {this.annualInteresRate=annualInterestRate;}public void setDateCreated(Date dateCreated){System.out.println(dateCreated.toString());}//月利息public double getMonthlyInterestRate() {return annualInteresRate/12;}//取钱public double withDraw(double withdraw) {return this.balance=this.balance-withdraw;}//存钱public double deposit(double deposit) {return this.balance=this.balance+deposit;}}

 ***10.8(财务:税款类Tax)

*10.14(MyDate 类)

package p10;import java.util.GregorianCalendar;public class MyDate {private int year;private int month;//月份是从0开始的,0代表一月份private int day;private long eclapseTime;//从格林威治时间1970年1月1日午夜开始流逝的毫秒数  //无参构造方法,该方法 创建当前日期的 MyDate对象public MyDate() {//获取当前日期,在这里我直接设置自己当前时间(你们也可以随机设置自己当前日期)GregorianCalendar object1=new GregorianCalendar();this.year=object1.get(GregorianCalendar.YEAR);this.month=object1.get(GregorianCalendar.MONTH);this.day=object1.get(GregorianCalendar.DATE);}//有参构造方法,创建以从1970年1月1日午夜开始流逝的毫秒数为时间的 MyDate对象  public MyDate(long eclapseTime) {GregorianCalendar object2=new GregorianCalendar();//设置从格林威治时间算起的一个特定时间object2.setTimeInMillis(eclapseTime);this.year=object2.get(GregorianCalendar.YEAR);this.month=object2.get(GregorianCalendar.MONTH);this.day=object2.get(GregorianCalendar.DATE);}//有参构造方法,创建带指定 (年,月,日)的 MyDate对象public MyDate(int year, int month, int day) {this.year=year;this.month=month;this.day=day;}public int getYear() {return year;}public int getMonth() {return month;}public int getDay() {return day;}//设置一个从格林威治时间1970年1月1日午夜开始流逝的毫秒数  public void setDate(long eclapseTime) {this.eclapseTime=eclapseTime;}
}
package p10;import java.util.Date;public class Test14 {public static void main(String[] args) {Date d1=new Date();Date d2=new Date(34355555133101L);System.out.println("对象1的时间为:"+d1.getHours()+"小时"+d1.getMinutes()+"分钟"+d1.getSeconds()+"秒");System.out.println("对象2的时间为:"+d2.getHours()+"小时"+d2.getMinutes()+"分钟"+d2.getSeconds()+"秒");}}

JAVA语言程序设计(基础篇) 第十版——第十章 面向对象思考 (参考答案)相关推荐

  1. JAVA程序设计第十版梁勇著答案_0031 Java学习笔记-梁勇著《Java语言程序设计-基础篇 第十版》英语单词...

    第01章 计算机.程序和Java概述 CPU(Central Processing Unit)*中央处理器 Control Unit*控制单元 arithmetic/logic unit /ə'rɪθ ...

  2. Java语言程序设计 基础篇 原书第10版 ,梁勇著,百度云链接及密码

    一本好书,对java小白来说是一本非常不错的书.第一次分享,请大家多多指教, Java语言程序设计 基础篇 原书第10版 ,梁勇著 链接:https://pan.baidu.com/s/1-MN_AS ...

  3. Java语言程序设计(基础篇) 第十章 面向对象思考

    第十章 面向对象思考 10.2 类的抽象和封装 1.类的抽象是指将类的实现和类的使用分离开,实现的细节被封装并且对用户隐藏,这被称为类的封装. 2.从类外可以访问的方法和数据域的集合以及预期这些成员如 ...

  4. [转载] java语言程序设计-基础篇

    参考链接: Java中的决策制定(if,if-else,switch,break,continue,jump) 第1章,计算机.程序和Java概述 包括[每个java初学者都应该搞懂的问题] http ...

  5. java语言程序设计-基础篇

    第1章,计算机.程序和Java概述 包括[每个java初学者都应该搞懂的问题] http://blog.csdn.net/haobo920/article/details/5784990 1,java ...

  6. 《java语言程序设计 基础篇》原书第10版 PDF版 梁勇著 戴开宇译

    方式一:百度网盘 网址:https://pan.baidu.com/s/1eg3iCmnFj-r8x_RlmLkKcw 提取码:cx32 或者: 方式二:腾讯微云 链接:https://share.w ...

  7. 《java语言程序设计-基础篇》笔记一

    第一章.计算机.程序和java概述 中央处理器 CPU由两部分组成:控制单元和算术/逻辑单元 控制单元用于控制和协调除CPU之外其他组件的动作 算术/逻辑单元用于完成数值运算和逻辑运算 每台计算机都有 ...

  8. Java语言程序设计(基础篇) 第十一章 继承和多态

    第十一章 继承和多态 11.1 引言 面向对象的编程允许你从已经存在的类中定义新的类,这称为继承. 11.2 父类和子类 1.继承使得你可以定义一个通用的类(既父类),之后扩充该类为一个更加特定的类( ...

  9. Java语言程序设计(基础篇) 第二章

    第二章 基本程序设计 2.2 编写简单的程序 1.变量名尽量选择描述性的名字(descriptive name). 2.实数(即带小数点的数字)在计算机中使用一种浮点的方法来表示.因此,实数也称为浮点 ...

最新文章

  1. MarkDown需要掌握的几个基本语法
  2. memcache缓存服务器(nginx php memcache mysql)
  3. ae 创建图像等高线 蒙版_Pixelmator ——图像处理软件
  4. python3支持中文_彻底颓了—— Vim Python 3 接口不支持中文 - Jacky Liu's Blog
  5. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之启动另一个Activity
  6. 抓住那头牛(信息学奥赛一本通-T1253)
  7. mysql sql dateadd_在SQL语句中DATEADD和DATEDIFF函数
  8. Spring.profile实现开发、测试和生产环境的配置和切换
  9. hadoop问题锦集(一)-搭建集群环境时的常见问题
  10. 工业以太网交换机特点分析及使用注意事项
  11. 深圳非深户未满一年社保居住证办理流程
  12. 计算机ppt幻灯片设计主题,如何设置幻灯片主题样式,如何设置幻灯片主题为流畅...
  13. 河南省周口市安吉软件测试培训中心第一次软件测试课程-计算机基础理论论篇
  14. 中山纪中集训Day7+8.7模拟赛题解
  15. 持续精进——我的2017年终总结
  16. win10台式计算机调亮度,Win10系统台式机怎么调节亮度
  17. React 报错 Too many re-renders. React limits the number of renders to prevent an infini
  18. 《Scrum精髓—敏捷转型指南》读后感
  19. php文件用什么软件打开?php运行环境如何打开php文件
  20. 浅谈使用itext7制作pdf

热门文章

  1. 计算机图形学(消隐)
  2. MTK6225-状态栏图标的显示与隐藏
  3. 3DMaxy有什么步骤设置模型投影
  4. EE转CS:2020实习之路(华为、阿里、招行等)
  5. 囚徒困境--自私的理性
  6. linux自动巡检截图,Linux系统巡检shell脚本
  7. mac打开服务器文件管理,6款热门受欢迎的mac文件管理软件~
  8. 自定义linux iso,制作自定义的ISO镜像(Centos 7.6)
  9. 基于 EASI 自适应盲分离的 I/Q 失衡补偿
  10. 【后端】10进制与进制转换以及斐波那契数列第N位的JAVA小练习