オーバーロード---メソッドのオーバーロード

過負荷

メソッド(関数)のオーバーロードとは、簡単に言うと、メソッド名(関数名)は同じで、パラメータの数や型が異なり、戻り値が異なることを指し、コンストラクタメソッドとも呼ばれます。

実験要件

要件:
1. Android で実行される減算クラスを作成します。その組み込みの減算演算には、整数および倍精度の減算演算が含まれている必要があります。
2. 実パラメータ量が 2 の場合は 2 つの数値の減算を実現し、実パラメータ量が 1 の場合は減算演算を実現し、実パラメータ量が 0 の場合は結果 0 を出力します。
3. 運用時には少なくとも次の計算が必要です。
a) 学籍番号の最後から 2 桁目から最初から最後までの桁を引く 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);
    }
}

演算結果

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_49149394/article/details/122680070