คลาสเป็นแผนผังของวัตถุและในการใช้งานเราจะสร้างออบเจกต์ขึ้นมาจากแผนผังดังกล่าวโดยในออบเจกต์แต่ละตัวจะมีฟิลด์และเมธอดเป็นของตนเอง เราใช้งานออบเจกต์โดยการเรียกใช้งานเมธอดต่างๆของออบเจกต์เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ

     บล็อกของเมธอดคือบล็อกที่ประกาศคำสั่งสร้างเมธอดอยู่ข้างหน้าบล็อก รูปแบบของประโยคคำสั่งที่ใช้ในการสร้างเมธอดคือ

คีย์เวิร์ดควบคุมการเข้าถึง ชนิดของเมธอด  ชนิดของค่าส่งกลับ  ชื่อเมธอด(พารามิเตอร์ )

     ตัวอย่างเช่น

      โดยมากเรามักจะกำหนดคีย์เวิร์ดควบคุมการเข้าถึงแบบ public ให้กับเมธอดเพื่อให้เมธอดสามารถถูกเรียกใช้งานได้จากโปรแกรมหรือออบเจกต์อื่นๆเพราะในการเขียนโปรแกรมเราจะแยกส่วนต่างๆออกเป็นออบเจกต์ย่อยๆและให้ออบเจกต์เชื่อมต่อกันผ่านทางเมธอด 

     แต่ถ้าเราต้องการให้เมธอดถูกเรียกใช้งานได้เฉพาะจากภายในตัวออบเจกต์เอง (เรียกใช้งานได้จากภายในคลาสเดียวกันเท่านั้น) เราจะกำหนดคีย์เวิร์ดควบคุมการเข้าถึงแบบ private 

     หากเราต้องการให้เมธอดถูกเรียกใช้ได้จากออบเจกต์ที่ถูกสร้างจากคลาสที่อยู่ภายในแพคเกจเดียวกันกับคลาสที่มีเมธอดอยู่ และจากเฉพาะออบเจกต์ที่ถูกสร้างจากคลาสลูกที่อยู่ต่างแพคเกจเราจะกำหนดคีย์เวิร์ดควบคุมการเข้าถึงแบบ protected 

     และในกรณีที่เราต้องการให้เมธอดถูกเรียกใช้ได้จากออบเจกต์ที่ถูกสร้างจากคลาสที่อยู่ในแพคเกจเดียวกันกับคลาสที่มีเมธอดอยู่เท่านั้นเราจะไม่กำหนดคีย์เวิร์ดควบคุมการเข้าถึงและเรียกเมธอดแบบนี้ว่า package-private

     สำหรับชนิดของเมธอดโดยมากจะไม่ต้องกำหนด ซึ่งหมายถึงเราต้องสร้างออบเจกต์ขึ้นมาก่อนจึงจะสามารถเรียกใช้งานเมธอดได้และเรียกเมธอดชนิดนี้ว่า instance method แต่ถ้าเราต้องการให้สามารถเรียกใช้งานเมธอดได้เลยโดยที่ไม่ต้องสร้างออบเจกต์ขึ้นมาก่อนเราจะกำกับด้วยคีย์เวิร์ด static และเรียกเมธอดชนิดนี้ว่า static method โดยมากเราจะไม่ค่อยได้สร้างเมธอดแบบ static method เท่าไรนัก เกณฑ์ในการพิจารณาว่าเมื่อไรควรสร้างเมธอดแบบ static method คือเมธอดนั้นไม่มีการใช้งานเมธอดหรือฟิลด์ในคลาสที่ตัวเมธอดนั้นอยู่เลย

     หากเมธอดมีการส่งค่ากลับจะต้องระบุชนิดข้อมูลที่ส่งกลับซึ่งชนิดข้อมูลที่ส่งกลับเป็นได้ทั้ง primitive data type และ reference data typeโดยจะใช้คำสั่ง return ในการส่งค่ากลับ หรือในกรณีที่ไม่มีการส่งค่ากลับให้ระบุด้วยคีย์เวิร์ด void  

     ชื่อเมธอดนิยมขึ้นต้นด้วยตัวอักษรเล็กและในคำถัดไปให้ขึ้นต้นด้วยตัวอักษรใหญ่เพื่อให้อ่านง่ายและควรสื่อถึงกิจกรรมที่ทำโดยเมธอด เช่น squareAreaCalculation getReportByID เป็นต้น

     สำหรับพารามิเตอร์หากไม่มีให้ใช้  ( ) แต่ถ้ามีพารามิเตอร์ต้องระบุชนิดข้อมูลและตัวแปรพารามิเตอร์ไว้ภายในวงเล็บ เช่น  (int parameter) โดยชนิดข้อมูลเป็นได้ทั้ง primitive data type และ reference data type และหากมีมากกว่าหนึ่งพารามิเตอร์ให้คั่นด้วยเครื่องหมาย  ,  เช่น (int parameter1, double parameter2)

     ตัวอย่างด้านบนเป็นเมธอดที่มีการกำหนดคีย์เวิร์ดควบคุมการเข้าถึงเป็น public ซึ่งคือออบเจกต์อื่นหรือโปรแกรมอื่นสามารถเรียกใช้งานเมธอดนี้ได้ การกำหนดชนิดของเมธอดเป็น static หมายถึงสามารถเรียกใช้งานเมธอดได้เลยโดยที่ไม่ต้องสร้างออบเจกต์ขึ้นมาก่อน มีการกำหนดคีย์เวิร์ด int แสดงว่ามีการส่งค่ากลับด้วยชนิดข้อมูลแบบ int มีการรับข้อมูลเพื่อเข้าไปดำเนินการในเมธอดผ่านทางพารามิเตอร์ชื่อ input ที่เป็นชนิดข้อมูลแบบ int และมีการส่งค่ากลับด้วยคำสั่ง return

     ตัวอย่างด้านบนเป็นเมธอดที่มีการกำหนดคีย์เวิร์ดควบคุมการเข้าถึงเป็น public คือออบเจกต์อื่นหรือโปรแกรมอื่นสามารถเรียกใช้งานได้ กำหนดชนิดของเมธอดเป็น static หมายถึงสามารถเรียกใช้งานเมธอดได้เลยโดยที่ไม่ต้องสร้างออบเจกต์ขึ้นมาก่อน กำหนดคีย์เวิร์ด void แสดงว่าไม่มีการส่งค่ากลับจากเมธอด และมีการส่งข้อมูลเข้าไปดำเนินการในเมธอดผ่านทางพารามิเตอร์ที่เป็นชนิดข้อมูลแบบ String int และ double

     เราไม่สามารถสร้างเมธอดภายใต้บล็อกของเมธอดอื่น และเราไม่สามารถสร้างเมธอดนอกบล็อกของคลาส 

การส่งข้อมูลให้เมธอด

     เราสามารถส่งข้อมูลเพื่อให้เมธอดรับมาดำเนินการได้ด้วยการกำหนดตัวแปรเพื่อรับข้อมูล ตัวแปรดังกล่าวเราเรียกว่าพารามิเตอร์ โดยเราจะกำหนดพารามิเตอร์ไว้ใน (  ) ด้านท้ายของการประกาศเมธอด ชนิดข้อมูลพารามิเตอร์ที่ใช้งานได้มีทั้ง primary data type และ reference data type จากตัวอย่างด้านล่างเรากำหนดพารามิเตอร์เพื่อรับค่าเป็นชนิดข้อมูลแบบ int จำนวน 3 ตัว

     การส่งข้อมูลให้เมธอดที่เราเรียกใช้งานทำได้โดยส่งข้อมูลตามลำดับและด้วยชนิดข้อมูลเดียวกันกับที่พารามิเตอร์กำหนดไว้โดยค่าที่ส่งเข้ามาจะเป็นข้อมูลหรือตัวแปรก็ได้ 

     ตัวอย่างด้านล่างเป็นโปรแกรมเพื่อหาผลบากของเลขจำนวนเต็ม 3 ค่า เราสร้างเมธอดชื่อ printSumResult เพื่อรอรับเลขจำนวนเต็ม 3 ค่าและพิมพ์ผลบวกออกมา ส่วนเมธอดชื่อ returnSumResult จะรอรับเลขจำนวนเต็ม 3 ค่าแต่ส่งผลลัพธ์กลับไปยังจุดที่เรียกใช้งานเมธอด ในตัวอย่างจะเห็นการส่งข้อมูลให้เมธอดทั้งแบบที่เป็นข้อมูลและแบบที่เป็นตัวแปร

     จากตัวอย่างด้านบน บรรทัดที่ 11 และ 12  เป็นการเรียกใช้งานเมธอดที่มีการส่งข้อมูลให้เมธอดด้วย โดยบรรทัดที่ 11 เป็นการส่งข้อมูลโดยใช้ตัวแปร ซึ่งภาษาจาวาจะไปดูจากที่อยู่ในหน่วยความจำที่ตัวแปรชี้ไปและเอาข้อมูลนั้นไปกำหนดให้กับพารามิเตอร์อีกทีหนึ่งตามลำดับ หากเราส่งข้อมูลให้เมธอดด้วยชนิดข้อมูลที่ไม่ตรงกับที่กำหนดในพารามิเตอร์ โปรแกรม IntelliJ IDEA จะแจ้งข้อผิดพลาดให้เราทราบ สำหรับบรรทัดที่ 12 เป็นการส่งข้อมูลให้เมธอดตรงๆซึ่งภาษาจาวาจะเอาข้อมูลนั้นไปกำหนดให้กับพารามิเตอร์อีกทีหนึ่งตามลำดับ สำหรับบรรทัดที่ 13 จะเป็นการกำหนดให้ตัวแปรชื่อ result มารับค่าที่ส่งคืนกลับมาจากเมธอด

การเรียกใช้งานเมธอดจากภายในคลาสเดียวกัน

     การเรียกใช้งานเมธอดจากภายในคลาสเดียวกันสามารถเรียกชื่อเมธอดได้โดยตรง ตัวอย่างเช่น เราสามารถลดความซ้ำซ้อนของโปรแกรมที่เราเขียนได้โดยการดึงเอาส่วนทำงานซ้ำๆกันออกมาเป็นเมธอด โดยตัวอย่างโปรแกรมด้านล่างเป็นการแสดงข้อความบอกเกรดจากคะแนนที่ได้ ซึ่งภาพแรกจะเป็นการเขียนโปรแกรมที่มีส่วนการคิดเกรดซ้ำๆตามจำนวนคน

     หลังจากที่เรานำเอาส่วนของการคิดเกรดมาสร้างเป็นเมธอดจะพบว่าโปรแกรมสั้นลงและอ่านง่ายขึ้นมาก และจะเห็นว่าการเรียกใช้งานเมธอดจากภายในคลาสเดียวกันคือเรียกชื่อของเมธอดตรงๆ โดยเมธอดนี้จะรับข้อมูลเข้ามาดำเนินการ 2 ค่าคือ ชื่อ (String name) และ คะแนน (int score) และพิมพ์ผลลัพธ์ที่ได้ออกมาโดยไม่ได้มีการส่งค่ากลับ (ใช้คีย์เวิร์ด void) ตามตัวอย่างด้านล่าง

การเรียกใช้งานเมธอดจากคลาสอื่น

     ในขั้นตอนการพัฒนาโปรแกรมเราอาจจะต้องแยกโปรแกรมเราออกเป็นหลายๆคลาสหรือหลายๆไฟล์นั่นเอง เราสามารถเรียกใช้งานเมธอดจากคลาสอื่นได้โดยที่คลาสและเมธอดที่เราจะเรียกมาใช้งานจะต้องระบุคีย์เวิร์ดควบคุมเป็น  public

     การเรียกใช้งานมีได้ 2 แบบ คือ หากเป็นเมธอดที่เป็น static method คือมีการระบุคีย์เวิร์ด static เราสามารถเรียกมาใช้งานได้โดยใช้วิธีการอ้างอิง ชื่อคลาส ตามด้วยอักขระ  .  และตามด้วยชื่อเมธอด เช่น classname.methodname แต่ถ้าเป็นเมธอดที่เป็น instance method คือไม่ได้ระบุคีย์เวิร์ด static ไว้เราจะต้องสร้างออบเจกต์ของคลาสขึ้นมาและเก็บไว้ที่ตัวแปร จากนั้นจึงเรียกใช้งานเมธอดผ่านตัวแปรอีกทีหนึ่ง 

     จากตัวอย่างต่อไปนี้ เราสร้างคลาสขึ้นมาสองคลาส ในแต่ละคลาสมีหนึ่งเมธอด โดยเมธอด printClass1 ในคลาส Class1  เป็น static method สังเกตุจากการกำหนดคีย์เวิร์ด static ไว้

     ส่วนคลาส Class 2 มีเมธอดในแบบ instance method สังเกตุได้จากไม่มีการกำหนดคีย์เวิร์ด static ไว้  

     ในการเรียกใช้งานเมธอดสามารถทำได้ตามตัวอย่างด้านล่าง

     เนื่องจากเมธอด printClass1 ของคลาส Class1 เป็น static method จึงสามารถเรียกใช้งานเมธอดโดยการอ้างอิงด้วย Class1.printClass1(); ได้เลยโดยที่ไม่ต้องสร้างออบเจกต์ขึ้นมาก่อน ตามตัวอย่างในบรรทัดที่ 7

     ส่วนเมธอด printClass2 ของคลาส Class2 เป็น instance method 

จึงต้องสร้างออบเจกต์ขึ้นมาแล้วนำไปเก็บที่ตัวแปร class2Obj ก่อนดังตัวอย่างในบรรทัดที่ 9 โดยรูปแบบของคำสั่งในการสร้างออบเจกต์คือ 

ชื่อคลาส ชื่อตัวแปรออบเจกต์ =  new  ชื่อคลาส(); 

     สังเกตุว่ารูปแบบของคำสั่งในการสร้างออบเจกต์จะเหมือนกับคำสั่งในการประกาศตัวแปรและกำหนดค่าให้กับตัวแปร โดยมองว่าชื่อคลาสคือชนิดข้อมูล ดังนั้นเราสามารถมองได้ว่าตัวแปร class2Obj มีชนิดข้อมูลเป็น Class2 

     สำหรับผลลัพธ์ของโปรแกรมเป็นไปตามตัวอย่างด้านล่าง

     ในกรณีที่เรามีเมธอดทั้งแบบ static method และ instance method ในคลาสเดียวกัน วิธีการเรียกใช้งานแต่ละเมธอดจะยังคงเป็นไปตามที่กล่าวมา ซึ่งในการใช้งานโปรแกรม IntelliJ IDEA จะแสดงเฉพาะเมธอดที่สอดคล้องกับวิธีการเรียกใช้งานมาให้เราเลือก

การโอเวอร์โหลดเมธอด

     การโอเวอร์โหลดเมธอดคือการสร้างเมธอดที่มีชื่อเดียวกันแต่มีพารามิเตอร์ต่างกันเพื่อให้รองรับการใช้งานได้ในหลายๆกรณีแทนที่จะต้องสร้างเมธอดที่มีชื่อแตกต่างกันสำหรับแต่ละกรณีซึ่งจะยุ่งยากในการจดจำเพื่อนำไปใช้งาน ตัวอย่างเช่น เมธอด println ใน Java API ซึ่งรองรับชนิดข้อมูลทุกแบบนั้นจริงๆแล้วเกิดจากการโอเวอร์โหลดเมธอดจึงดูเหมือนว่าเราใช้แค่เมธอด println ตัวเดียวก็สั่งพิมพ์ได้ทุกชนิดข้อมูล ในการใช้งานภาษาจาวาจะรู้ว่าต้องใช้งานเมธอดใดโดยดูจากพารามิเตอร์ที่กำหนดไว้

     ตัวอย่างของการใช้โอเวอร์โหลดเมธอด เช่น หากเราเขียนโปรแกรมเพื่อแสดงชื่อและจำนวนเงินของผู้ที่บริจาคเพื่อการกุศลซึ่งอาจจะมีผู้ที่ไม่ประสงค์จะออกนาม ดังนั้นเมธอดของเราจะต้องรองรับในกรณีที่ไม่มีชื่อด้วย เราสามารถใช้การโอเวอร์โหลดเมธอดได้ดังนี้

     จากตัวอย่างด้านบนจะเห็นว่าเรามีเมธอดที่ชื่อ printDonatorName อยู่สองเมธอด โดยทั้งสองเมธอดแตกต่างกันที่พารามิเตอร์ที่รองรับ คือ เมธอดแรกในบรรทัดที่ 10 ต้องการ String name และ double amount ส่วนเมธอดที่สองในบรรทัดที่ 14  ต้องการเพียง double amount เท่านั้น 

     ในการใช้งานภาษาจาวาจะดูจากชนิดข้อมูลที่ส่งให้พารามิเตอร์เพื่อเรียกใช้เมธอดที่เหมาะสม จากตัวอย่างบรรทัดที่  6 เป็นการเรียกใช้เมธอดโดยส่งชนิดข้อมูล String และ double ภาษาจาวาก็จะเรียกใช้เมธอดที่ต้องการทั้ง String และ double ซึ่งคือเมธอดในบรรทัดที่ 10 และจากตัวอย่างในบรรทัดที่ 7 เป็นการเรียกใช้เมธอดโดยส่งชนิดข้อมูล double เท่านั้น ภาษาจาวาก็จะเรียกใช้เมธอดที่ต้องการเฉพาะ double ซึ่งคือเมธอดในบรรทัดที่ 14