Presentation is loading. Please wait.

Presentation is loading. Please wait.

2012.11.09.  Overloading Methods  The Scope of Variables  The Math Class  Floating point Format [Sample code] TestMethodOverloading.java 、 AmbiguousOverloading.java.

Similar presentations


Presentation on theme: "2012.11.09.  Overloading Methods  The Scope of Variables  The Math Class  Floating point Format [Sample code] TestMethodOverloading.java 、 AmbiguousOverloading.java."— Presentation transcript:

1 2012.11.09

2  Overloading Methods  The Scope of Variables  The Math Class  Floating point Format [Sample code] TestMethodOverloading.java 、 AmbiguousOverloading.java TestRandomCharacter 、 RandomCharacter.java

3 定義 : Method name is the same but the operation will be different.

4 解釋 : Overloading 有人將他稱為「多載」,是指說在 「相同類別」中,定義「名稱相同」,但是「引 數個數不同」,或是「引數型態不同」的函式, 這樣 Java 就可以根據引數的個數、或是引數的 型態,呼叫到對應的函式。

5 程式 : TestMethodOverloading.java 課本 p.220

6 public class TestMethodOverloading { public static void main(String[] args) { // Invole the max method with int parameters System.out.println("The maximum between 3 and 4 is " + max(3,4)); System.out.println("The maximum between 3.0 and 5.4 is " + max(3.0,5.4)); System.out.println("The maximum between 3.0 and 5.4, and 10.14 is " + max(3.0,5.4,10.14)); } // Return the max between two int values public static int max(int num1, int num2) { if(num1 > num2) return num1; else return num2; } // Find the max between two double values public static double max(double num1, double num2) { if(num1 > num2) return num1; else return num2; } // Return the max among three double values public static double max(double num1, double num2, double num3) { return max( max(num1,num2), num3 ); }

7 max(3,4)max(3.0,5. 4) max(3.0,5.4,10.14) public static int max(int num1, int num2) public static double max(double num1, double num2) public static double max(double num1, double num2, double num3)

8 程式 : AmbiguousOverloading.java 課本 p.221

9 public class AmbiguousOverloading { public static void main(String[] args) { // Invole the max method with int parameters System.out.println( max(3,4) ); } public static double max(int num1, double num2) { if(num1 > num2) return num1; else return num2; } public static double max(double num1, int num2) { if(num1 > num2) return num1; else return num2; }

10 [ 變數的有效範圍 ] public static void main() { int a = 20; for( int b=0 ; b<10 ; b++ ) { System.out.println(b); } System.out.println(a); } The scope of a The scope of b 課本 5.9 節

11 [ Java 變數重複宣告的錯誤 ] public static void main() { int a = 20; for( int a=0 ; a<10 ; a++ ) { System.out.println(a); } System.out.println(a); } The scope of a 課本 5.9 節

12 C 在巢狀 blocks 中 可以宣告同名的變數 Java 不行

13  C 有「全域變數」和「區域變數」的概念  Java 只有「區域變數」的概念  Java 的全域變數比較類似 Class variable ( 定義在 method 裡的變數, 是一種 local variable) ※ In Java, all variables that are not local variables are fields of a class. 課本 p.195

14  Trigonometric  Exponent  Rounding  min, max, abs  random  Java API : http://docs.oracle.com/javase/7/docs/api/ 課本 5.10 節

15 範圍 : 0 <= Math.random() < 1.0 EX: (int) (Math.random() * 10) 0 to 9 50 + (int) (Math.random() * 50) 50 to 99

16 程式 : TestRandomCharacter.java RandomCharacter.java 課本 p.227

17  Random integer  (int)(Math.random()) *(65535+1)  (int)((int)’a’ + Math.random() * ((int)’z’-(int)’a’+1))  Random char  (char)(‘a’+Math.random()*(‘z’-’a’+1))

18 public class TestRandomCharacter { public static void main(String[] args) { final int NUMBER_OF_CHARS =175; final int CHARS_PER_LINE =25; for(int i=0;i<NUMBER_OF_CHARS;i++){ char ch =RandomCharacter.getRandomLowerCaseLetter(); if((i+1)% CHARS_PER_LINE ==0){ System.out.println(ch); }else{ System.out.print(ch); }

19 import java.lang.Math; public class RandomCharacter { public static char getRandomCharacter(char ch1,char ch2){ return (char)(ch1+Math.random()*(ch2-ch1+1)); } public static char getRandomLowerCaseLetter(){ return getRandomCharacter('a','z'); } public static char getRandomUpperCaseLetter(){ return getRandomCharacter('A','Z'); } public static char getRandomCharacter(){ return getRandomCharacter('\u0000','\uFFFF'); } //section 2.17 :character has a unique Unicode between 0 and FFFF in hexadecimal(65535 in decimal)

20 1. 喜巴辣 電腦與玩家各擲兩顆骰子 方法 getRandomNum() 產生 1~6 的亂數 方法 compare(a,b), 比較點數大小

21  Ppt 下載:  http://oss.csie.fju.edu.tw/~jastine01/ppt.html


Download ppt "2012.11.09.  Overloading Methods  The Scope of Variables  The Math Class  Floating point Format [Sample code] TestMethodOverloading.java 、 AmbiguousOverloading.java."

Similar presentations


Ads by Google