slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第八單元 PowerPoint Presentation
Download Presentation
第八單元

Loading in 2 Seconds...

play fullscreen
1 / 36

第八單元 - PowerPoint PPT Presentation


  • 174 Views
  • Uploaded on

第八單元. 方法的開發與使用. 單元概論. 單元目標: 描述方法 (method) 的優點以及定義如何定義 worker method 與 calling method 宣告以及叫用方法 比較物件與靜態方法 (static method) 方法的覆載 (overloaded method) 問題與討論. 方法的建立與叫用. 語法: [ modifiers ] return_type method_identifier ([ arguments ]) { method_code_block }. 方法最簡易的形式. 範例:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第八單元' - dick


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

第八單元

方法的開發與使用

slide2
單元概論
  • 單元目標:
    • 描述方法(method)的優點以及定義如何定義worker method與calling method
    • 宣告以及叫用方法
    • 比較物件與靜態方法(static method)
    • 方法的覆載(overloaded method)
  • 問題與討論
slide3
方法的建立與叫用
  • 語法:

[modifiers] return_type method_identifier ([arguments]) {

method_code_block

}

slide4
方法最簡易的形式
  • 範例:

public void displayShirtInformation() {

System.out.println("Shirt ID: " + shirtID);

System.out.println("Shirt description:" + description);

System.out.println("Color Code: " + colorCode);

System.out.println("Shirt price: " + price);

System.out.println("Quantity in stock: " +quantityInStock);

} // display方法的結尾

slide5
從不同的類別中叫用方法
  • 範例:

1 public class ShirtTest {

2

3 public static void main (String args[]) {

4

5 Shirt myShirt;

6 myShirt = new Shirt();

7

8 myShirt.displayShirtInformation();

9

10 }

11 }

12

slide7
在相同類別中叫用方法
  • 範例:

1 public class Elevator {

2

3 public boolean doorOpen=false;

4 public int currentFloor = 1;

5 public int weight = 0;

6

7 public final int CAPACITY = 1000;

8 public final int TOP_FLOOR = 5;

9 public final int BOTTOM_FLOOR = 1;

10

11 public void openDoor() {

12 System.out.println(“Opening door.”);

13 doorOpen = true;

14 System.out.println(“Door is open.”);

15 }

16

17 public void closeDoor() {

18 System.out.println(“Closing door.”);

slide8
19 doorOpen = false;

20 System.out.println(“Door is closed.”);

21 }

22

23 public void goUp() {

24 System.out.println(“Going up one floor.”);

25 currentFloor++;

26 System.out.println(“Floor: “ + currentFloor);

27 }

28

29 public void goDown() {

30 System.out.println(“Going down one floor.”);

31 currentFloor--;

32 System.out.println(“Floor: “ + currentFloor);

33 }

34

35 public void setFloor(int desiredFloor) {

36 while (currentFloor != desiredFloor)

37 if (currentFloor < desiredFloor) {

38 goUp();

39 }

40 else {

slide9
41 goDown();

42 }

43 }

44

45 public int getFloor() {

46 return currentFloor;

47 }

48

49 public boolean checkDoorStatus() {

50 return doorOpen;

51 }

52 }

slide10
叫用方法的準則
  • 一個calling method可呼叫的方法之數量是沒有限制的。
  • calling method與worker method能夠存在於相同的類別或不同的類別中。
  • 根據worker method與calling method是否存在於同一類別或不同類別中,你叫用worker method的方式也會有所不同。
  • 你能用任何的順序來叫用方法。方法並不需要完全依照它們在類別中出現的順序來宣告(類別內包含worker method)。
slide12
宣告含有參數的方法
  • 範例:

public void setFloor(int desiredFloor) {

while (currentFloor != desiredFloor)

if (currentFloor < desiredFloor) {

goUp();

}

else {

goDown();

}

}

  • 範例:

public void multiply(int NumberOne, int NumberTwo)

slide13
main方法
  • 範例:

public static void main (String args[])

  • 範例(叫用):

java ShirtTest 12.99 R

slide14
叫用含有引數的方法
  • 範例:

1 public class ElevatorTest {

2

3 public static void main(String args[]) {

4

5 Elevator myElevator = new Elevator();

6

7 myElevator.openDoor();

8 myElevator.closeDoor();

9 myElevator.goUp();

10 myElevator.goUp();

11 myElevator.goUp();

12 myElevator.openDoor();

13 myElevator.closeDoor();

14 myElevator.goDown();

15 myElevator.openDoor();

16 myElevator.closeDoor();

17 myElevator.goDown();

slide15
18

19 int curFloor = myElevator.getFloor();

20

21 myElevator.setFloor(myElevator.TOP_FLOOR);

22 }

23 myElevator.openDoor();

24 }

25 }

slide16
宣告含有回傳值的方法
  • 宣告:

public int sum(int numberOne, int numberTwo)

slide17
回傳一個數值
  • 範例:

public int getSum() {

return sum;

}

slide18
接收回傳值
  • 範例:

1 public class ElevatorTest {

2

3 public static void main(String args[]) {

4

5 Elevator myElevator = new Elevator();

6

7 myElevator.openDoor();

8 myElevator.closeDoor();

9 myElevator.goUp();

10 myElevator.goUp();

11 myElevator.goUp();

12 myElevator.openDoor();

13 myElevator.closeDoor();

14 myElevator.goDown();

15 myElevator.openDoor();

16 myElevator.closeDoor();

17 myElevator.goDown();

slide19
18

19 int curFloor = myElevator.getFloor();

20

21 myElevator.setFloor(myElevator.TOP_FLOOR);

22 }

23 myElevator.openDoor();

24 }

25 }

slide20
使用方法的優點
  • 方法使得程式更容易閱讀並且更容易維護。
  • 方法讓程式的開發與維護更快速。
  • 方法是軟體重複使用的核心。
  • 方法允許個別的物件協同運作,並且以分工的方式來完成一個程式。
slide22
建立靜態方法與變數
  • 比較實體方法與變數和靜態方法與變數之間的差異性。
  • 宣告靜態方法:

static Properties getProperties()

  • 叫用靜態方法:

Classname.method();

slide23
建立靜態方法與變數
  • 範例:

public static char convertShirtSize(int numericalSize) {

if (numericalSize < 10) {

return ’S’;

}

else if (numericalSize < 14) {

return ’M’;

}

else if (numericalSize < 18) {

return ’L’;

}

else {

return ’X’;

slide24
建立靜態方法與變數
  • 宣告靜態變數:

static double SALES_TAX = 8.25;

  • 存取靜態變數:

Classname.variable;

  • 範例:

double myPI;

myPI = Math.PI;

java api
在Java API中的靜態方法和變數
  • 範例:
    • Math類別
    • System類別
    • StrictMath類別
java api1
在Java API中的靜態方法和變數
  • 何時宣告靜態方法或變數:
    • 不一定要在個別的物件中執行運算,或是變數不一定要與特別的物件有所關聯。
    • 方法或變數必須在物件具現化之前被叫用到。
    • 方法或變數在邏輯上並不屬於物件,但是可能屬於類別(例如Java API中的Math類別)。
overloading
使用方法覆載(Overloading)
  • 方法覆載的範例:

1 public class Calculator {

2

3 public int sum(int numberOne, int numberTwo){

4

5 System.out.println(“Method One”);

6

7 return numberOne + numberTwo;

8 }

9

10 public float sum(float numberOne, float numberTwo) {

11

12 System.out.println(“Method Two”);

13

14 return numberOne + numberTwo;

15 }

16

17 public float sum(int numberOne, float numberTwo) {

slide28
18

19 System.out.println(“Method Three”);

20

21 return numberOne + numberTwo;

22 }

23 }

overloading1
使用方法覆載(Overloading)
  • 方法叫用的範例:

1 public class CalculatorTest {

2

3 public static void main(String [] args) {

4

5 Calculator myCalculator = new Calculator();

6

7 int totalOne = myCalculator.sum(2,3);

8 System.out.println(totalOne);

9

10 float totalTwo = myCalculator.sum(15.99F, 12.85F);

11 System.out.println(totalTwo);

12

13 float totalThree = myCalculator.sum(2, 12.85F);

14 System.out.println(totalThree);

15 }

16 }

17

slide31
方法覆載的使用
  • 範例:

public int sum(int numberOne, int numberTwo)

public int sum(int numberOne, int numberTwo, int numberThree)

public int sum(int numberOne, int numberTwo,int numberThree, intnumberFour)

slide32
方法覆載的使用
  • 範例:

1 public class ShirtTwo {

2

3 public int shirtID = 0; // 襯衫的預設ID

4 public String description = “-description required-”; // 預設

5

6 // 顏色代碼為 R=紅色,B=藍色,G=綠色,U=未設定

7 public char colorCode = ‘U’;

8 public double price = 0.0; // 所有襯衫的預設價錢

9 public int quantityInStock = 0; // 所有襯衫的預設數量

10

11 public void setShirtInfo(int ID, String d, double p){

12 shirtID = ID;

13 description = d;

14 price = p;

15 }

16

17 public void setShirtInfo(int ID, String d, double p, char c){

slide33
18 shirtID = ID;

19 description = d;

20 colorCode = c;

21 price = p;

22 }

23

24 public void setShirtInfo(intID,Stringd,doublep,charc,intq){

25 shirtID = ID;

26 description = d;

27 colorCode = c;

28 price = p;

29 quantityInStock = q;

30 }

31

32 // 此方法顯示項目的值

33 public void display() {

34

35 System.out.println(“Item ID: “ + shirtID);

36 System.out.println(“Item description:” + description);

37 System.out.println(“Color Code: “ + colorCode);

38 System.out.println(“Item price: “ + price);

39 System.out.println(“Quantity in stock: “ + quantityInStock);

slide34
40

41 } // display方法的結尾

42 } // 類別的結尾

slide35
方法覆載的使用
  • 範例:

1 class ShirtTwoTest {

2

3 public static void main (String args[]) {

4 ShirtTwo shirtOne = new ShirtTwo();

5 ShirtTwo shirtTwo = new ShirtTwo();

6 ShirtTwo shirtThree = new ShirtTwo();

7

8 shirtOne.setShirtInfo(100, “Button Down”, 12.99);

9 shirtTwo.setShirtInfo(101, “Long Sleeve Oxford”, 27.99, ‘G’);

10 shirtThree.setShirtInfo(102,“ShirtSleeveT-Shirt”,9.99,‘B’,50);

11

12 shirtOne.display();

13 shirtTwo.display();

14 shirtThree.display();

15 }

16 }