重载
方法(函数)重载简单的来说就是,方法名(函数名)相同,参数的个数类型不同 ,以及返回值不同,这样的方法也叫构造方法。
实验要求
要求:
1.编写一个在安卓下运行的减法类,其内置减法运算应囊括整型和双精度的减法运算。
2.当实参数量为2时实现两个数的相减,当实参数量为1时实现减一操作,当实参数量为0时输出结果0。
3.运行时至少需计算:
a)学号倒数第二位减倒数第一位
b)1.1-1.001
c)1.1-1.00001
d)2.01
4.计算结果要准确。
这个实验要求要编写一个减法类,并实现多种不同类型的计算,我的实现方法是在减法类Sub中写几个不同的构造方法,然后实例化类对象就可以根据参数不同分别调用。
代码
package com.yy;
import androidx.appcompat.app.AppCompatActivity;
import java.math.BigDecimal;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Sub a = new Sub();//实例化一个减法类对象a
//方法的调用
a.sub();
a.sub(3);
a.sub(7, 0);
a.sub(2.01);
a.sub(1.1, 1.001);
a.sub(1.1, 1.00001);
}
}
//减法类
class Sub
{
//无参构造方法,输出结果0
void sub()
{
Log.i("yy", "sub()= 0");
}
//一个参数,整型,结果直接减一
void sub(int x)
{
Log.i("yy", "sub(int x)= " + (x - 1));
}
//一个参数,双精度浮点型,涉及精确计算,所以要先进行精确转换
void sub(double x)
{
BigDecimal a5 = BigDecimal.valueOf(x);//把x转为十进制的BigDecimal
BigDecimal a6 = BigDecimal.valueOf(1);
BigDecimal result1 = a5.subtract(a6);
Log.i("yy", "sub(double x)= " + result1);
}
//两个参数,整型
void sub(int x, int y)
{
Log.i("yy", "输出学号倒数第二位减倒数第一位: ");
Log.i("yy", "sub(int x,int y)= " + (x - y));
}
//两个参数,浮点型
void sub(double x, double y)
{
BigDecimal a3 = BigDecimal.valueOf(x);
BigDecimal a4 = BigDecimal.valueOf(y);
BigDecimal result2 = a3.subtract(a4);//调用subtract()方法
Log.i("yy", "sub(double x,double y)= " + result2);
}
}