Download presentation
Presentation is loading. Please wait.
Published byTatum Chapel Modified over 10 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.