#### 題目練習

##### 題目五

Write a method areEqualByThreeDecimalPlaces with two parameters of type double.

The method should return boolean and it needs to return true if two double numbers are the same up to three decimal places. Otherwise, return false.

1 | EXAMPLES OF INPUT/OUTPUT: |

TIP: Use paper and pencil.

TIP: Use casting.

NOTE: The areEqualByThreeDecimalPlaces method needs to be defined as public static like we have been doing so far in the course.

NOTE: Do not add a main method to solution code.

##### 題目五(答案)

1 | public class DecimalComparator { |

1 | public class Main { |

##### 題目六

Write a method hasEqualSum with 3 parameters of type int.

The method should return boolean and it needs to return true if the sum of the first and second parameter is equal to the third parameter. Otherwise, return false.

1 | EXAMPLES OF INPUT/OUTPUT: |

NOTE: The hasEqualSum method needs to be defined as public static like we have been doing so far in the course.

NOTE: Do not add a main method to solution code.

##### 題目六(答案)

1 | public class EqualSumChecker { |

1 | public class Main { |

##### 題目七

We’ll say that a number is “teen” if it is in the range 13 -19 (inclusive).

Write a method named hasTeen with 3 parameters of type int.

The method should return boolean and it needs to return true if one of the parameters is in range 13(inclusive) - 19 (inclusive). Otherwise return false.

1 | EXAMPLES OF INPUT/OUTPUT: |

Write another method named isTeen with 1 parameter of type int.

The method should return boolean and it needs to return true if the parameter is in range 13(inclusive) - 19 (inclusive). Otherwise return false.

1 | EXAMPLES OF INPUT/OUTPUT: |

NOTE: All methods need to be defined as public static like we have been doing so far in the course.

NOTE: Do not add a main method to solution code.

##### 題目七(答案)

1 | public class TeenNumberChecker { |

1 | public class Main { |

#### 方法多載(Method Overloading)

**方法多載**就是一個功能可以允許我們使用超過一種**同樣名稱**的方法，只要我們使用不同的**變數**。它就是一個功能可以創建很多同名的方法並有不同的應用。呼叫一個多載的方法可以運行該方法特別的應用。- 挑戰

Create a method called calcFeetAndInchesToCentimeters. It needs to have two parameters. Feet is the first parameter, inches is the second parameter．

You should validate that the first parameter feet is >= 0.

You should validate that the second parameter inches is >=0 and <= 12.

return -1 from the method if either of the above is not true.

If the parameters are valid, then calculate how many centimeters comprise the feet and inches passed to this method and return that value.

Create a second method of the same name but with only one parameter, inches is the parameter, validate that its >= 0, return -1 if it is not true.

But if its valid, then calculate how many feet are in the inches and then here is the tricky part

call the other overloaded method passing the correct feet and inches calculated so that it can calculate correctly.

hints: Use double for your number data types is probably a good idea.

1 inch = 2.54cm and 1 foot = 12 inches.

use the link I give you to confirm your code is calculating correctly.

calling another overloaded method just require you to use the right number of parameters.

3. 挑戰的答案

1 | public static void main(String[] args) { |

- 方法多載的好處
- 它改善了程式碼的可讀性和重複使用性。
- 記住一個名稱比起記住很多名稱更容易。
- 保持命名方法的一致性，單一名稱的方法是很常被使用的。
- 方法多載給予程式設計師彈性去呼叫一個有不同變數型態但相似的方法。

#### 秒和分的挑戰

- 題目
- Create a method called
**getDurationString**with two parameters, first parameter**minutes**and second parameter**seconds**. - You should validate that teh
**first parameter minutes is >= 0**. - You should validate that the
**second parameter seconds is >=0 and <= 59**. - The method should
**return “Invalid value”**in teh method if either of the above are not true. - If the
**parameters are valid**then calculate how many hours minutes and seconds equal the minutes and seconds passed to this method and**return that value as string in format “XXh XXm ZZs”**where XX represents a number of hours, YY the minutes and ZZ the seconds. - Create a
**second method of the same name but with only one parameter seconds**. **Validate that it is >= 0, and retrun “Invalid value” if it is not true**.- If it is valid, then calculate how many minutes are in the seconds value and then call the other overloaded method passing the correct minutes and seconds calculated so that it can calculate correctly.
- Call both methods to print values to the console.
- Tips:
- Use int or long for your number data types is probably a good idea.
- 1 minute = 60 seconds and 1 hour = 60 minutes or 3600 seconds.
- Methods should be static as we have used previously.

- Bonus:
- For the input 61 minutes output should be 01h 01m 00s, but it is ok it is 1h 1m 0s (Tip: use if-else)
- Create a new console project and call it SecondsAndMinutesChallenge

- Create a method called
- 答案

1 | public class Main { |

`final`

就是 constant 變數裡面的一個關鍵字，如果定義了，就不能改變它。可以將上面的程式碼改成下面這樣。

1 | private static final String INVALID_VALUE_MESSAGE = "Invalid value"; |

#### 四個挑戰

##### 題目一

Write a method named area with one double parameter named radius.

The method needs to return a double value that represents the area of a circle.

If the parameter radius is negative then return -1.0 to represent an invalid value.

Write another overloaded method with 2 parameters x and y (both doubles), where x and y represent the sides of a rectangle.

The method needs to return an area of a rectangle.

If either or both parameters is/are a negative return -1.0 to indicate an invalid value.

For formulas and PI value please check the tips below.

1 | Examples of input/output: |

TIP: The formula for calculating the area of a rectangle is x * y.

TIP: The formula for calculating a circle area is radius * radius * PI.

TIP: For PI use a constant from Math class e.g. Math.PI

NOTE: All methods need to be defined as public static like we have been doing so far in the course.

NOTE: Do not add a main method to your solution code!

##### 題目一(答案)

1 | public class AreaCalculator { |

##### 題目二

Write a method printYearsAndDays with parameter of type long named minutes.

The method should not return anything (void) and it needs to calculate the years and days from the minutes parameter.

If the parameter is less than 0, print text “Invalid Value”.

Otherwise, if the parameter is valid then it needs to print a message in the format “XX min = YY y and ZZ d”.

XX represents the original value minutes.

YY represents the calculated years.

ZZ represents the calculated days.

1 | EXAMPLES OF INPUT/OUTPUT: |

TIPS:

- Be extra careful about spaces in the printed message.
- Use the remainder operator
- 1 hour = 60 minutes
- 1 day = 24 hours
- 1 year = 365 days

NOTES

- The printYearsAndDays method needs to be defined as public static like we have been doing so far in the course.
- Do not add main method to solution code.
- The solution will not be accepted if there are extra spaces

##### 題目二(答案)

1 | public class MinutesToYearsDaysCalculator { |

##### 題目三

Write a method printEqual with 3 parameters of type int. The method should not return anything (void).

If one of the parameters is less than 0, print text “Invalid Value”.

If all numbers are equal print text “All numbers are equal”

If all numbers are different print text “All numbers are different”.

Otherwise, print “Neither all are equal or different”.

1 | EXAMPLES OF INPUT/OUTPUT: |

TIP: Be extremely careful about spaces in the printed message.

NOTES

- The solution will not be accepted if there are extra spaces.
- The method printEqual needs to be defined as public static like we have been doing so far in the course.
- Do not add main method to solution code.

##### 題目三(答案)

1 | public class IntEqualityPrinter { |

##### 題目四

The cats spend most of the day playing. In particular, they play if the temperature is between 25 and 35 (inclusive). Unless it is summer, then the upper limit is 45 (inclusive) instead of 35.

Write a method isCatPlaying that has 2 parameters. Method needs to return true if the cat is playing, otherwise return false

1st parameter should be of type boolean and be named summer it represents if it is summer.

2nd parameter represents the temperature and is of type int with the name temperature.

1 | EXAMPLES OF INPUT/OUTPUT: |

NOTES

- The isCatPlaying method needs to be defined as public static like we have been doing so far in the course.
- Do not add the main method to the solution code.

##### 題目四(答案)

1 | public class PlayingCat { |