国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

Java中有返回值的方法與循環執行

2019-11-18 10:42:44
字體:
來源:轉載
供稿:網友

  有返回值的方法
  有了前面新定義的gentle和obedienceTrained 變量,我們就可以提供一些更方便的方法了,例如
  
   boolean isGoodWithChildren() {
  if (gentle == true && obedienceTrained == true)
   return true;
  else
   return false;
   }
  此方法引進了新的 java(TM) 語法。首先,方法isGoodWithChildren()沒有用修飾詞 void, 而提供了一個返回類型 boolean。假如返回類型不用 void而用系統的原始類或者用戶定義數據類型,那么在方法體中的每一個可能的執行分支都必須提供一個 返回(return) 語句-- Java 編譯器強制要遵守這種"約定"。
  返回語句的語法是:
  return ;
  此處, 可以是任意表達式,只要表達式的值的類型和返回類型相匹配。
  對于方法 isGoodWithChildren() 來說,假如 if 語句的布爾表達式值為 true,就執行第一條 return 語句,結束方法的執行,返回相應的計算結果,此處結果只是簡單值true。假如布爾表達式值為false,就執行 else 子句后的代碼塊,此處是一條簡單的返回 false 的 return 語句。
  在這個例子中,布爾表達式是一個復合表達式--包含兩個表達式,每個表達式都有一個比較運算符==,兩個比較表達式用邏輯與運算符 && 連接;因此,當且僅當兩個子表達式的值為 true 時,整個表達式的值才為 true。
  布爾表達式通常包括一個或多個,下表所示的 Java 邏輯運算符:
  Java中有返回值的方法與循環執行
  在 "短路(short-circuit)" 中,只要一個子表達式的值為 false (用 && 時)或 true (用 時),那么接下來的子表達式將不再計算。
  雖然 isGoodWithChildren() 用了一個完整的 if 語句,它包含了可選的 else 子句, 但這個方法可以寫得更加簡練些。Java 和 C 一樣,是一個語法功能強大的語言。首先,我們可以刪除 if,因為返回值由布爾表達式的值確定,也就是說假如布爾表達式的值為 true,返回 true,否則,返回 false。該方法更簡練的寫法如下:
  
   boolean isGoodWithChildren() {
  return (gentle == true && obedienceTrained == true);
   }
  還可以寫得更精簡一些。注重每一個子表達式都是一個布爾變量和布爾值 true 比較,在此例中,每個子表達式都可以簡寫為布爾變量本身:
  boolean isGoodWithChildren() {
  return (gentle && obedienceTrained);
   }
  存取方法再論
  Dog 中提供了形式為 setXX 的寫方法來改變實例變量的值。然而很多時侯,也需要獲得實例變量的值。一般說來,假如一個類具有支持 set 操作的實例變量,那么他們也一定支持 get 操作。對應每一個 set 方法,我們應該為之編寫一個相應的 get 方法,例如
   boolean getObedienceTrained() {
  return obedienceTrained;
   }
  注重:假如實例變量是 boolean 類型,如 obedienceTrained,很多程序員都習慣用形式 isXX 命名本該為 getXX 的方法,而有的程序員則會兩種方法都提供:
   boolean isObedienceTrained() {
  return obedienceTrained;
   }
  循環執行
  Java(TM) 提供了 while, do-while, 和 for 語言結構來循環多次執行一個語句(或語句組)。while 是一種更常用的循環結構;for 則語法功能更強大。
  循環結構
  while (<布爾表達式>)
  <語句組>... 
  do
  <語句組>...
  while (<布爾表達式>) 
  for (<初始條件>...; <布爾表達式>; <循環過程表達式>...)
  <語句>...
  有了循環,我們就可以讓我們的狗叫個不停,令我們的鄰居很沮喪:
  
   void bark(int times) {
  while (times > 0) {
   System.out.PRintln(barkSound);
   times = times - 1;
  }
   }
  因此,用另一個 bark() 方法,我們可以支持面向對象的任務:向 Dog 的實例發送一個 bark 消息,該消息用方法定義中的 times 參數來反映消息請求 n 次叫聲(bark)。
  
  DogChorus 現在真的名符其實了:
  
  public class DogChorus {
   public static void main(String[] args) {
  Dog fido = new Dog();
  Dog spot = new Dog();
  spot.setBark("Arf. Arf.");
  fido.bark();
  spot.bark();
  fido.bark(4);
  spot.bark(3);
  new Dog().bark(4); // unknown dog
  System.exit(0);
   }
  }
  現在 DogChorus 的輸出為:
  
  Woof.
  Arf. Arf.
  Woof.
  Woof.
  Woof.
  Woof.
  Arf. Arf.
  Arf. Arf.
  Arf. Arf.
  Woof.
  Woof.
  Woof.
  Woof.
  請注重程序中帶注釋"http:// unknown dog"的那行代碼。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苍溪县| 特克斯县| 宜兴市| 商都县| 菏泽市| 广南县| 星子县| 淳安县| 西畴县| 古田县| 平远县| 吴堡县| 蒙自县| 江永县| 宁陵县| 廉江市| 济阳县| 花莲市| 越西县| 鹤峰县| 介休市| 社旗县| 柯坪县| 蒙阴县| 盐源县| 龙山县| 嘉黎县| 河东区| 博客| 沁源县| 沽源县| 丰台区| 精河县| 武隆县| 枞阳县| 安康市| 盐亭县| 潮安县| 麻栗坡县| 元朗区| 乐亭县|