亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Java 中打印不同的參數多態方法?

如何在 Java 中打印不同的參數多態方法?

慕碼人2483693 2022-10-12 15:40:40
我已經聲明了三個具有相同名稱“sum”的方法,目的是簡單演示參數多態性的工作原理,但我不知道如何分別調用每個方法,這是我想要幫助的。我如何調用每種方法并知道我在調用哪個方法?我嘗試了一個簡單System.out.println(sum(2,3));的返回 5 但如果我將其中一個數字設置在整數范圍之外,我會收到錯誤消息:Exception in thread "main" java.lang.Error: Unresolved compilation problem:    The literal 3000000000 of type int is out of range    at codeTester.main.main(main.java:30)/*Author: Maxim WilmotCreated:   18/04/2019Polymorphism - Parametric*/package codeTester;public class main {    //integer between -2 147 483 648 and 2 147 483 647    public static int sum(int a, int b) {        return a + b;    }    //decimal between -3,4.10^38 and 3,4.10^38    public static float sum(float a, float b) {        return a + b; //    }    //decimal between -1,7.10^308 and 1,7.10^308    public static double sum(double a, double b) {        return a + b;    }     public static void main(String args[]) {         System.out.println(sum(2,3)); //call a method, which one ?     }}我想要 3 個不同的輸出,每種方法 1 個。那可能嗎 ?可能為每種方法計算不同的數字?謝謝你的幫助,馬克斯。
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

方法重載(編譯時多態性)基于方法簽名(即方法名稱、參數類型和參數順序)在 java 中工作。

在您的情況下,當文字值為 3000000000 時,該值位于長數據范圍內。

在 java 中,如果你聲明的文字值大于 2 147 483 647,那么你應該在文字后面加上字母' l '或' L ' 。

因此,將您的參數作為 3000000000L 或 3000000000l 與另一個 int 參數一起傳遞,然后將調用浮點參數方法(這將通過參數的向上轉換來完成)

對于原始類型,向上轉換的工作方式如下。

字節 -> 短 -> 整數 -> 長 -> 浮點 -> 雙

對于下面的行

System.out.println(sum(3000000000L, 3));

你會得到答案

3.0E9

此輸出將由 float 參數類型方法生成。


查看完整回答
反對 回復 2022-10-12
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號