Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language Chapter 5 Methods
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Introducing Methods A method statements that are grouped together to perform an operation.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Modifier F public : ถ้าใช้นำหน้า method จะทำให้ method นั้น สามารถเรียกใช้ได้ในทุกๆคลาสในทุกๆ package F protected : ถ้าใช้นำหน้า method จะทำให้ method นั้นสามารถเรียกใช้ได้ในคลาสอื่นที่อยู่ใน package เดียวกันและคลาสที่ inherit มา F private : ถ้าใช้นำหน้า method จะทำให้ method นั้น สามารถเรียกใช้ได้ภายในคลาสเท่านั้น F ถ้าไม่กำหนดชนิดของ access จะทำให้ method นั้นเป็น default คือสามารถเรียกใช้ได้จาก คลาสอื่นๆภายใน package เดียวกันเท่านั้น
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Modifier, cont F ภาษาจาวา แบ่งเมธอดออกเป็น 2 ประเภท F static method เป็นเมธอดที่มี keyword “static” หน้าชื่อ method method ที่เป็น static จะสามารถเรียกใช้งานได้ทันที โดย ไม่ต้องสร้าง object ก็ได้ มีรูปแบบ Classname.methodname F instance method เป็นเมธอดที่ไม่มี keyword “static” อยู่หน้าชื่อ method ถ้าต้องการจะเรียกใช้เมธอดนี้ ต้องทำการสร้าง object ก่อน แล้วจึงเรียกใช้ตามรูปแบบ Objectname.methodname
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Return value type ถ้าเมธอดนั้นไม่มีการส่งค่ากลับมา ( ไม่มีประโยด return อยู่ในบรรทัดสุดท้ายของ method) return value type ต้องกำหนด keyword void ถ้าเมธอดนั้นมีการส่งค่ากลับ ( มีประโยด return อยู่ในบรรทัดสุดท้ายของ method) ค่าที่จะส่งค่า กลับต้องกำหนดให้ตรงกับ return value type
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Parameter List F เป็นชื่อของตัวแปรที่ใช้รับข้อมูลที่ argument ของ method ส่งออก เมื่อมีการเรียกใช้ method นั้น F ถ้าไม่มีการส่งค่า argument มาจาก method ก็ไม่ต้องมี parameter list F กรณีมี parameter list มากกว่า 1 ตัว ใน method ต้อง ขั้นด้วย, (comma) ระหว่าง parameter list F Example static viod min(int a, int b) static int min(int a, int b) static void max()
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Calling Methods animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation i is now 5 animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation j is now 2 animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation invoke max(i, j) animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation invoke max(i, j) Pass the value of i to num1 Pass the value of j to num2 animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation declare variable result animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation (num1 > num2) is true since num1 is 5 and num2 is 2 animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation result is now 5 animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation return result, which is 5 animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation return max(i, j) and assign the return value to k animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trace Method Invocation Execute the print statement animation
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Overloading Methods Overloading the max Method public static double max(double num1, double num2) { if (num1 > num2) return num1; else return num2; } public static int max(int num1, int num2) { if (num1 > num2) return num1; else return num2; }
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Scope of Local Variables // Fine with no errors public static void correctMethod() { int x = 1; int y = 1; // i is declared for (int i = 1; i < 10; i++) { x += i; } // i is declared again for (int i = 1; i < 10; i++) { y += i; }
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Scope of Local Variables, cont. // With no errors public static void incorrectMethod() { int x = 1; int y = 1; for (int i = 1; i < 10; i++) { int x = 0; x += i; }
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved method substring() F การดึงข้อความบางส่วน (substring) F รูปแบบ msg.substring(n,m); เป็นการดึงข้อความตำแหน่งที่ n ( เริ่มตำแหน่งแรกจะเริ่มนับที่ 0) โดยดึงมาจนถึงตำแหน่งที่ m - 1 msg คือชื่อตัวแปร String Object ที่ต้องการดึงข้อความ substring คือชื่อของ method substring ซึ่งอยู่ใน class String F Example String message = “Technic Bangkok”; String msg = message.substring(8,15)+”Campus”; String msg = message.substring(0,7)+”Campus”;
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Method chatAt() F method “chatAt()” สามารถดึงตัวอักษร (Character) 1 ตัวอักษรจากข้อความ (String) โดยการระบุตำแหน่ง (index) ที่ต้องการ รูปแบบ msg.charAt(n); n คือตำแหน่งที่ต้องการดึงโดยตำแหน่งแรกของ ข้อความมีค่า 0 msg คือชื่อตัวแปร String Object ที่ต้องการดึง ข้อความ charAt(n) คือเมธอด ที่อยู่ใน Class String Example String input = “Campus”; char ch = input.charAt(2); System.out.print(ch);//print m
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Method length() F method length() F ใช้หาความยาวของตัวแปร String รูปแบบ msg.length(); msg คือตัวแปร String ที่ต้องการหาค่าความยาวของ ตัวแปร length() เป็น method ที่อยู่ใน class String Example String input = “Campus”;// กำหนดค่าตัวแปร String ชื่อ input int n = input.length();//return n = 6 System.out.println(n);
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved class NumberFormat import java.text.* ;// ต้องทำการ import class text double tax = ;// กำหนดค่าตัวแปร tax เป็นตัวเลข ทศนิยม 6 ตำแหน่ง // กำหนด Format ให้กับตัวเลข NumberFormat formatter = NumberFormat.getNumberInstance() ; // เพื่อให้แสดงทศนิยม 2 ตำแหน่งพร้อมปัดค่าขึ้นให้ด้วย formatter.setMaximumFractionDigits(2) ; // เพื่อเติมเลข 0 ต่อท้าย ถ้ามีทศนิยมเพียงตำแหน่งเดียว formatter.setMinimumFractionDigits(2) ; // พิมพ์ข้อมูลออกทางจอภาพจาก object formatter System.out.println("Tax: $" + formatter.format(tax)) ;
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved The Math Class F Class constants: PI E F Class methods: Trigonometric Methods Exponent Methods Rounding Methods min, max, abs, and random Methods
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Trigonometric Methods F sin(double a) F cos(double a) F tan(double a) F acos(double a) F asin(double a) F atan(double a) Radians toRadians(90) Examples: Math.sin(0) returns 0.0 Math.sin(Math.PI / 6) returns 0.5 Math.sin(Math.PI / 2) returns 1.0 Math.cos(0) returns 1.0 Math.cos(Math.PI / 6) returns Math.cos(Math.PI / 2) returns 0
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Exponent Methods exp(double a) Returns e raised to the power of a. log(double a) Returns the natural logarithm of a. log10(double a) Returns the 10-based logarithm of a. pow(double a, double b) Returns a raised to the power of b. sqrt(double a) Returns the square root of a. Examples: Math.exp(1) returns 2.71 Math.log(2.71) returns 1.0 Math.pow(2, 3) returns 8.0 Math.pow(3, 2) returns 9.0 Math.pow(3.5, 2.5) returns Math.sqrt(4) returns 2.0 Math.sqrt(10.5) returns 3.24
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Rounding Methods double ceil(double x) x rounded up to its nearest integer. This integer is returned as a double value. double floor(double x) x is rounded down to its nearest integer. This integer is returned as a double value. int round(float x) Return (int)Math.floor(x+0.5). long round(double x) Return (long)Math.floor(x+0.5).
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Rounding Methods Examples Math.ceil(2.1) returns 3.0 Math.ceil(2.0) returns 2.0 Math.ceil(-2.0) returns –2.0 Math.ceil(-2.1) returns -2.0 Math.floor(2.1) returns 2.0 Math.floor(2.0) returns 2.0 Math.floor(-2.0) returns –2.0 Math.floor(-2.1) returns -3.0 Math.round(2.0) returns 2 Math.round(-2.0f) returns -2 Math.round(-2.6) returns -3
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved min, max, and abs max(a, b) and min(a, b) Returns the maximum or minimum of two parameters. abs(a) Returns the absolute value of the parameter. random() Returns a random double value in the range [0.0, 1.0). Examples: Math.max(2, 3) returns 3 Math.max(2.5, 3) returns 3.0 Math.min(2.5, 3.6) returns 2.5 Math.abs(-2) returns 2 Math.abs(-2.1) returns 2.1
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved The random Method Generates a random double value greater than or equal to 0.0 and less than 1.0 (0 <= Math.random() < 1.0). Examples: In general,