亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

主類型的過載

2019-11-18 12:09:58
字體:
來源:轉載
供稿:網友

  主(數據)類型能從一個“較小”的類型自動轉變成一個“較大”的類型。涉及過載問題時,這會稍微造成一些混亂。下面這個例子揭示了將主類型傳遞給過載的方法時發生的情況:
  
  //: PRimitiveOverloading.java
  // Promotion of primitives and overloading
  
  public class PrimitiveOverloading {
   // boolean can't be automatically converted
   static void prt(String s) {
    System.out.println(s);
   }
  
   void f1(char x) { prt("f1(char)"); }
   void f1(byte x) { prt("f1(byte)"); }
   void f1(short x) { prt("f1(short)"); }
   void f1(int x) { prt("f1(int)"); }
   void f1(long x) { prt("f1(long)"); }
   void f1(float x) { prt("f1(float)"); }
   void f1(double x) { prt("f1(double)"); }
  
   void f2(byte x) { prt("f2(byte)"); }
   void f2(short x) { prt("f2(short)"); }
   void f2(int x) { prt("f2(int)"); }
   void f2(long x) { prt("f2(long)"); }
   void f2(float x) { prt("f2(float)"); }
   void f2(double x) { prt("f2(double)"); }
  
   void f3(short x) { prt("f3(short)"); }
   void f3(int x) { prt("f3(int)"); }
   void f3(long x) { prt("f3(long)"); }
   void f3(float x) { prt("f3(float)"); }
   void f3(double x) { prt("f3(double)"); }
  
   void f4(int x) { prt("f4(int)"); }
   void f4(long x) { prt("f4(long)"); }
   void f4(float x) { prt("f4(float)"); }
   void f4(double x) { prt("f4(double)"); }
  
   void f5(long x) { prt("f5(long)"); }
   void f5(float x) { prt("f5(float)"); }
   void f5(double x) { prt("f5(double)"); }
  
   void f6(float x) { prt("f6(float)"); }
   void f6(double x) { prt("f6(double)"); }
  
   void f7(double x) { prt("f7(double)"); }
  
   void testConstVal() {
    prt("Testing with 5");
    f1(5);f2(5);f3(5);f4(5);f5(5);f6(5);f7(5);
   }
   void testChar() {
    char x = 'x';
    prt("char argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   void testByte() {
    byte x = 0;
    prt("byte argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   void testShort() {
    short x = 0;
    prt("short argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   void testInt() {
    int x = 0;
    prt("int argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   void testLong() {
    long x = 0;
    prt("long argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   void testFloat() {
    float x = 0;
    prt("float argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   void testDouble() {
    double x = 0;
    prt("double argument:");
    f1(x);f2(x);f3(x);f4(x);f5(x);f6(x);f7(x);
   }
   public static void main(String[] args) {
    PrimitiveOverloading p =
     new PrimitiveOverloading();
    p.testConstVal();
    p.testChar();
    p.testByte();
    p.testShort();
    p.testInt();
    p.testLong();
    p.testFloat();
    p.testDouble();
   }
  } ///:~
  
  若觀察這個程序的輸出,就會發現常數值5被當作一個int值處理。所以假若可以使用一個過載的方法,就能獲取它使用的int值。在其他所有情況下,若我們的數據類型“小于”方法中使用的自變量,就會對那種數據類型進行“轉型”處理。char獲得的效果稍有些不同,這是由于假期它沒有發現一個準確的char匹配,就會轉型為int。
  若我們的自變量“大于”過載方法期望的自變量,這時又會出現什么情況呢?對前述程序的一個修改揭示出了答案:
  
  
  //: Demotion.java
  // Demotion of primitives and overloading
  
  public class Demotion {
   static void prt(String s) {
    System.out.println(s);
   }
  
   void f1(char x) { prt("f1(char)"); }
   void f1(byte x) { prt("f1(byte)"); }
   void f1(short x) { prt("f1(short)"); }
   void f1(int x) { prt("f1(int)"); }
   void f1(long x) { prt("f1(long)"); }
   void f1(float x) { prt("f1(float)"); }
   void f1(double x) { prt("f1(double)"); }
  
   void f2(char x) { prt("f2(char)"); }
   void f2(byte x) { prt("f2(byte)"); }
   void f2(short x) { prt("f2(short)"); }
   void f2(int x) { prt("f2(int)"); }
   void f2(long x) { prt("f2(long)"); }
   void f2(float x) { prt("f2(float)"); }
  
   void f3(char x) { prt("f3(char)"); }
   void f3(byte x) { prt("f3(byte)"); }
   void f3(short x) { prt("f3(short)"); }
   void f3(int x) { prt("f3(int)"); }
   void f3(long x) { prt("f3(long)"); }
  
   void f4(char x) { prt("f4(char)"); }
   void f4(byte x) { prt("f4(byte)"); }
   void f4(short x) { prt("f4(short)"); }
   void f4(int x) { prt("f4(int)"); }
  
   void f5(char x) { prt("f5(char)"); }
   void f5(byte x) { prt("f5(byte)"); }
   void f5(short x) { prt("f5(short)"); }
  
   void f6(char x) { prt("f6(char)"); }
   void f6(byte x) { prt("f6(byte)"); }
  
   void f7(char x) { prt("f7(char)"); }
  
   void testDouble() {
    double x = 0;
    prt("double argument:");
    f1(x);f2((float)x);f3((long)x);f4((int)x);
    f5((short)x);f6((byte)x);f7((char)x);
   }
   public static void main(String[] args) {
    Demotion p = new Demotion();
    p.testDouble();
   }
  } ///:~
  
  在這里,方法采用了容量更小、范圍更窄的主類型值。若我們的自變量范圍比它寬,就必須用括號中的類型名將其轉為適當的類型。假如不這樣做,編譯器會報告出錯。
  大家可注重到這是一種“縮小轉換”。也就是說,在造型或轉型過程中可能丟失一些信息。這正是編譯器強迫我們明確定義的原因——我們需明確表達想要轉型的愿望。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国在线精品国内播放| 亚洲精品综合精品自拍| 欧美最近摘花xxxx摘花| 中文综合在线观看| 91亚洲国产成人精品性色| 亚洲综合最新在线| 在线日韩欧美视频| 国外色69视频在线观看| 欧美激情视频一区二区| 久久久久久国产免费| 中国人与牲禽动交精品| 欧美猛男性生活免费| 亚洲最大的网站| 91日韩在线播放| 亚洲成人网久久久| 国产91精品久久久久久久| 日本三级久久久| 欧美大片欧美激情性色a∨久久| 精品人伦一区二区三区蜜桃免费| 日本a级片电影一区二区| 2019中文字幕全在线观看| 日韩最新免费不卡| 91久久在线观看| 国产亚洲视频中文字幕视频| 国产91色在线| 91精品国产自产在线老师啪| 精品视频www| 国产欧美中文字幕| 国产精品久久久久久久久久99| 亚洲另类xxxx| 国产精品久久久久久五月尺| 日韩电影大全免费观看2023年上| 国产精品久久久久999| 亚洲美女激情视频| 欧美激情视频一区二区三区不卡| 日韩乱码在线视频| 成人黄色大片在线免费观看| 欧美另类暴力丝袜| 国产精品亚洲片夜色在线| 成人福利网站在线观看| 97**国产露脸精品国产| 日韩一区二区三区国产| 亚洲天堂av女优| 亚洲成人性视频| 国产精品一二区| 欧洲日本亚洲国产区| 亚洲成人动漫在线播放| 日韩av免费在线观看| 全亚洲最色的网站在线观看| 国产不卡在线观看| 97视频在线观看成人| 欧美另类暴力丝袜| 91在线观看免费高清完整版在线观看| 国产精品第1页| 久久综合电影一区| 国产亚洲精品综合一区91| 最新日韩中文字幕| 久久伊人精品一区二区三区| 亚洲精品久久久久久久久久久久久| 日本一欧美一欧美一亚洲视频| 日韩精品中文字幕在线播放| 亚洲国产女人aaa毛片在线| 国产日韩欧美夫妻视频在线观看| 91精品久久久久久久久久久| 亚洲a级在线播放观看| 国产午夜精品久久久| 国内精品一区二区三区四区| 国产成人av网| 亚洲最大av在线| 国产成人精品优优av| 精品国产1区2区| 成人免费大片黄在线播放| 91嫩草在线视频| 精品国产户外野外| 国产成人精品av在线| 国产精品私拍pans大尺度在线| 亚洲欧美国产精品| 日韩中文字在线| 九九久久久久久久久激情| 日本一欧美一欧美一亚洲视频| 亚洲a∨日韩av高清在线观看| 国产欧美日韩中文字幕在线| 欧美性xxxx在线播放| 欧美精品亚州精品| 中文字幕日韩欧美| 国产精品www色诱视频| 亚洲国产欧美一区二区三区久久| 成人网页在线免费观看| 欧美诱惑福利视频| 亚洲欧美中文字幕| 狠狠躁夜夜躁人人爽超碰91| 日韩av在线一区二区| 亚洲国产成人精品久久久国产成人一区| 欧美性69xxxx肥| 性夜试看影院91社区| 日产精品99久久久久久| 久久中文精品视频| 91成人在线视频| 亚洲国产古装精品网站| 欧美一级高清免费播放| 在线观看欧美视频| 国产精品国产福利国产秒拍| 日韩人体视频一二区| 91精品在线播放| 亚洲精品女av网站| 欧美精品18videosex性欧美| 亚洲国产高潮在线观看| 亚洲女人初尝黑人巨大| 91精品国产乱码久久久久久蜜臀| 成人免费视频97| 欧美在线一区二区视频| 91久久久国产精品| 人妖精品videosex性欧美| 国产精品a久久久久久| 国产日韩精品综合网站| 欧美国产日韩xxxxx| 亚洲第一黄色网| 九九精品视频在线观看| 一本一本久久a久久精品牛牛影视| 亚洲成人av在线| 国产成人精品亚洲精品| 国产精品欧美亚洲777777| 日韩免费观看视频| 亚洲国产精品嫩草影院久久| www.日韩av.com| 国产精品久久久久久av福利软件| 欧美日韩国产一中文字不卡| 欧美日韩亚洲天堂| 欧美在线免费看| 91精品国产高清久久久久久| 国产日本欧美一区二区三区在线| 亚洲最大的网站| 欧美日韩亚洲成人| 欧美一区二区三区免费视| 国产亚洲日本欧美韩国| 国产精品精品视频一区二区三区| 亚洲白虎美女被爆操| 日韩亚洲国产中文字幕| 成人国产精品一区二区| 精品亚洲国产视频| 国产精品国内视频| 亚洲精品中文字幕有码专区| 欧美性猛交xxxx免费看久久久| 欧美性视频网站| 中文字幕视频在线免费欧美日韩综合在线看| 精品视频—区二区三区免费| 在线看福利67194| 97碰在线观看| 黑人巨大精品欧美一区免费视频| 欧美一级视频一区二区| 国产91色在线播放| 欧美高清videos高潮hd| 热99精品只有里视频精品| 久久精视频免费在线久久完整在线看| 精品亚洲一区二区三区在线观看| 国产精品88a∨| 欧美激情第1页| 成人午夜激情网| 国产精品成人av在线| 久久综合免费视频| 久久久电影免费观看完整版| 国产日产久久高清欧美一区| 91亚洲精品视频| 亚洲综合在线播放|