/*
2.努力只能及格,拼命才能优秀
*/
练习题二:
声明一个数学计算工具类MathTools,包含如下方法:
1、int add(int a, int b):求a+b
2、int subtract(int a,int b):求a-b
3、int mutiply(int a, int b):求a*b
4、int divide(int a, int b):求a/b
5、int remainder(int a, int b):求a%b
6、int max(int a, int b):求a和b中的最大值
7、int min(int a, int b):求a和b中的最小值
8、boolean equals(int a, int b):判断a和b是否相等
9、boolean isEven(int a):判断a是否是偶数
10、boolean isPrimeNumer(int a):判断a是否是素数
11、int round(double d):返回d的四舍五入后的整数值
接下来就是分步讲解
目录
一、实现类外数据访问、修问
二、求a+b、a-b、a*b、a/b、a%b
三、求 a和b间的最大值、最小值
四、判断ab是否相等、a是否是偶数
五、判断a是否是素数
六、求d四舍五入后的整数
七、编写测试类
一、实现类外数据访问、修问
(一)变量ab为int整型,实现正常整数运算
(二)变量d为double双精度型(需要四舍五入的数肯定不能是整数)
private int a,b;
private double d;
public MathTools(int a, int b) {
this.a = a;
this.b = b;
}
public MathTools(double d) {
this.d = d;
}
二、求a+b、a-b、a*b、a/b、a%b
(一)新建变量c存储我们 + - * / %后的数据结果
(二)return c 直接返回c所存储的数据
//1、int add(int a, int b):求a+b
public int add(int a ,int b){
int c=a+b;
return c;
}
//2、int subtract(int a,int b):求a-b
public int subtract(int a,int b){
int c=a-b;
return c;
}
//3、int mutiply(int a, int b):求a*b
public int mutiply(int a,int b){
int c= a*b ;
return c;
}
//4、int divide(int a, int b):求a/b
public int divide(int a,int b){
int c=a / b ;
return c;
}
//5、int remainder(int a, int b):求a%b
public int remainder(int a,int b){
int c= a%b ;
return c;
}
三、求 a和b间的最大值、最小值
(一)新建变量c存储我们比较a、b的大小后的数据结果
(二)Math.max/min()函数
Math.max(比较值1,比较值2) Math.min()同理
(三)return c 直接返回c所存储的数据
//6、int max(int a, int b):求a和b中的最大值
public int max(int a,int b){
int c= Math.max(a,b) ;
return c;
}
//7、int min(int a, int b):求a和b中的最小值
public int min(int a,int b){
int c= Math.min(a,b);
return c;
}
四、判断ab是否相等、a是否是偶数
(一)如果a=b即输出true,反之false
(二)a/2的余是否等于0,等于即输出true,反之false
//8、boolean equals(int a, int b):判断a和b是否相等
public boolean equals(int a,int b){
if (a==b){
return true;
}else {
return false;
}
}
//9、boolean isEven(int a):判断a是否是偶数
public boolean isEven(int a){
if (a%2==0){
return true;
}else {
return false;
}
}
五、判断a是否是素数
(一)素数定义及详细求法可参考我往期文章
直通车:100以内素数最简单求法
//10、boolean isPrimeNumer(int a):判断a是否是素数
public boolean isPrimeNumer(int a){
int i =0;
for (i = 2; i < a; i++) {
if (a%i==0){
return false;
}
}
if (i==a){
return true;
}else {
return false;
}
六、求d四舍五入后的整数
(一)详细四舍五入教程我没有写过,详细请阅大佬的详细教学:Java向上/向下/四舍五入取整
(二)因为我们输入的d是double型带小数的值,所以在转换时需转换为需要的整型int:
int c=(int) Math.ceil(d);
(三)运算结束及输出返回值c
//11、int round(double d):返回d的四舍五入后的整数值
public int round(double d){
int c=(int) Math.ceil(d);
return c;
}
七、编写测试类
(一)测试类就不过多解释了
(二)有一点要说明一下,d的初始值是double类型的,运算时记得改为int整型
测试类两种写法
1.
import java.util.Scanner;
public class MathToolsCS {
public static void main(String[] args) {
System.out.println("请输入a:");
int a=new Scanner(System.in).nextInt();
System.out.println("请输入b:");
int b=new Scanner(System.in).nextInt();
MathTools cs= new MathTools(a,b);
System.out.println("a+b="+cs.add(a,b));
System.out.println("a-b="+cs.subtract(a,b));
System.out.println("a*b="+cs.mutiply(a,b));
System.out.println("a/b="+cs.divide(a,b));
System.out.println("a%b="+cs.remainder(a,b));
System.out.println("a和b中的最大值:"+cs.max(a,b));
System.out.println("a和b中的最小值:"+cs.min(a,b));
System.out.println("a是否等于b: "+cs.equals(a,b));
System.out.println("a是否是偶数: "+cs.isEven(a));
System.out.println("a是否是素数:"+cs.isPrimeNumer(a));
System.out.println("请输入d:");
double d=new Scanner(System.in).nextDouble();
System.out.println("d四舍五入后的数:"+cs.round(d));
}
}
2.
import java.util.Scanner;
public class MathToolsCS {
public static void main(String[] args) {
System.out.println("请输入a:");
int a=new Scanner(System.in).nextInt();
System.out.println("请输入b:");
int b=new Scanner(System.in).nextInt();
MathTools cs= new MathTools(a,b);
System.out.println(a+"+"+b+"="+cs.add(a,b));
System.out.println(a+"-"+b+"="+cs.subtract(a,b));
System.out.println(a+"*"+b+"="+cs.mutiply(a,b));
System.out.println(a+"/"+b+"="+cs.divide(a,b));
System.out.println(a+"%"+b+"="+cs.remainder(a,b));
System.out.println(a+"和"+b+"中的最大值:"+cs.max(a,b));
System.out.println(a+"和"+b+"中的最小值:"+cs.min(a,b));
System.out.println(a+"是否等于"+b+": "+cs.equals(a,b));
System.out.println(a+"是否是偶数: "+cs.isEven(a));
System.out.println(a+"是否是素数:"+cs.isPrimeNumer(a));
System.out.println("请输入d:");
double d=new Scanner(System.in).nextDouble();
System.out.println(d+"四舍五入后的数:"+cs.round(d));
}
}
工具类的所有功能代码如下
public class MathTools {
private int a,b;
private double d;
public MathTools(int a, int b) {
this.a = a;
this.b = b;
}
public MathTools(double d) {
this.d = d;
}
//1、int add(int a, int b):求a+b
public int add(int a ,int b){
int c=a+b;
return c;
}
//2、int subtract(int a,int b):求a-b
public int subtract(int a,int b){
int c=a-b;
return c;
}
//3、int mutiply(int a, int b):求a*b
public int mutiply(int a,int b){
int c= a*b ;
return c;
}
//4、int divide(int a, int b):求a/b
public int divide(int a,int b){
int c=a / b ;
return c;
}
//5、int remainder(int a, int b):求a%b
public int remainder(int a,int b){
int c= a%b ;
return c;
}
//6、int max(int a, int b):求a和b中的最大值
public int max(int a,int b){
int c= Math.max(a,b) ;
return c;
}
//7、int min(int a, int b):求a和b中的最小值
public int min(int a,int b){
int c= Math.min(a,b);
return c;
}
//8、boolean equals(int a, int b):判断a和b是否相等
public boolean equals(int a,int b){
if (a==b){
return true;
}else {
return false;
}
}
//9、boolean isEven(int a):判断a是否是偶数
public boolean isEven(int a){
if (a%2==0){
return true;
}else {
return false;
}
}
//10、boolean isPrimeNumer(int a):判断a是否是素数
public boolean isPrimeNumer(int a){
int i =0;
for (i = 2; i < a; i++) {
if (a%i==0){
return false;
}
}
if (i==a){
return true;
}else {
return false;
}
}
//11、int round(double d):返回d的四舍五入后的整数值
public int round(double d){
int c=(int) Math.ceil(d);
return c;
}
}