คลาสนามธรรมใน Java และเมธอด [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2021-06-18

บทความต่อไปนี้จะกล่าวถึงคุณสมบัติของสิ่งที่เป็นนามธรรมใน Java และวิธีที่สามารถทำได้ผ่านคลาสนามธรรมและวิธีการนามธรรม เราจะสำรวจคุณสมบัติของคลาสนามธรรมและอินเทอร์เฟซในจาวา

สารบัญ

สิ่งที่เป็นนามธรรม

หนึ่งในแนวคิดที่สำคัญของ Java คือนามธรรม เป็นคุณสมบัติที่ผู้ใช้แสดงเฉพาะรายละเอียดที่สำคัญของโปรแกรมเท่านั้น ทุกส่วนที่ไม่จำเป็นจะถูกซ่อนไว้ กระบวนการนี้สามารถอธิบายได้โดยใช้ตัวอย่างอีเมล ผู้ส่งส่งอีเมลซึ่งจะถูกส่งไปยังผู้รับ ข้อมูลเดียวที่ผู้ส่งทราบคือส่งอีเมลแล้ว กระบวนการเบื้องหลังของการส่งอีเมลถูกซ่อนจากผู้ใช้ กระบวนการที่คล้ายกันใน Object-Oriented Programming (OOP) ซึ่งองค์ประกอบที่จำเป็นจะแสดงให้ผู้ใช้เห็นในขณะที่ซ่อนส่วนที่ไม่จำเป็น ผู้ใช้ไม่มีข้อมูลเกี่ยวกับกระบวนการนำไปใช้ แต่ทราบเฉพาะฟังก์ชันการทำงานเท่านั้น กลไกนี้เรียกว่านามธรรมซึ่งแสดงเฉพาะลักษณะสำคัญของวัตถุโดยไม่สนใจลักษณะอื่นๆ

ใน Java นามธรรมสามารถทำได้ผ่านคลาสนามธรรมและอินเทอร์เฟซ

คลาสนามธรรมใน Java

คำหลัก "นามธรรม" ใช้สำหรับคลาสนามธรรมและวิธีการใน Java คลาสนามธรรมมีคำสำคัญที่เป็นนามธรรมในการประกาศ

ไวยากรณ์ของคลาสนามธรรม Java คือ:

คลาสนามธรรม class_name

{

นามธรรมสาธารณะเป็นโมฆะ the_abstractMethod();

โมฆะสาธารณะ the_normalMethod()

{

#เนื้อความของวิธีการ

}

}

ไวยากรณ์ข้างต้นแสดงให้เห็นว่าทั้งวิธีปกติและนามธรรมสามารถมีอยู่ในคลาสนามธรรม

คุณสมบัติบางประการของคลาสนามธรรมคือ:

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

วิธีการเชิงนามธรรม

วิธีการแบบนามธรรมคือวิธีการประเภทที่ไม่ต้องการการนำไปใช้สำหรับการประกาศ วิธีการเหล่านี้ไม่มีเนื้อหาซึ่งหมายความว่าไม่มีการนำไปใช้ คุณสมบัติบางประการของวิธีการนามธรรมคือ:

  • วิธีการที่ เป็นนามธรรมใน Java ถูกประกาศโดยใช้คำหลัก "นามธรรม"
  • ในขณะที่การประกาศเมธอด abstract จะต้องวางคีย์เวิร์ด abstract ไว้หน้าชื่อของเมธอด
  • ไม่มีเนื้อหาในวิธีนามธรรม มีเพียงลายเซ็นของวิธีการเท่านั้นที่ปรากฏ
  • เมธอดนามธรรมใน Java ไม่มีวงเล็บปีกกา แต่จุดสิ้นสุดของเมธอดจะมีเครื่องหมายอัฒภาค (; )

วิธีการคู่นามธรรม (คู่ n1, n2 คู่);

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

ตัวอย่างวิธีการเชิงนามธรรม

คลาสนามธรรมสาธารณะ Car

{

โมเดลสตริงส่วนตัว

สีสตริงส่วนตัว

ปี int ส่วนตัว;

บทคัดย่อสาธารณะ double computePrice();

}

หากคลาสที่ได้รับไม่ได้ใช้เมธอด abstract จะส่งผลให้คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้

ไม่สามารถใช้กับคีย์เวิร์ด abstract ใน Java ได้

  • สุดท้าย
  • นามธรรมพื้นเมือง
  • นามธรรมคงที่
  • นามธรรม ส่วนตัว
  • นามธรรมที่ซิงโครไนซ์
  • นามธรรมเข้มงวดfp

รหัสที่แสดงการใช้ วิธีการนามธรรมใน Java แสดงอยู่ด้านล่าง

แหล่งที่มา

ผลลัพธ์ของรหัสคือ:

อินเทอร์เฟซ Java

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

คลาสต้องกำหนดวิธีการทั้งหมดของอินเทอร์เฟซที่ใช้ สำหรับคลาสนามธรรมเท่านั้น คลาสไม่จำเป็นต้องกำหนดเมธอด

อินเทอร์เฟซคล้ายกับ คลาสนามธรรม Java ด้วยวิธีต่อไปนี้:

  • สามารถมีวิธีการจำนวนเท่าใดก็ได้ในอินเทอร์เฟซ
  • นามสกุล .java ใช้สำหรับเขียนอินเทอร์เฟซในไฟล์ ชื่อของไฟล์ควรตรงกับชื่อของอินเทอร์เฟซ
  • ไฟล์ .class มีรหัสไบต์ของอินเทอร์เฟซ
  • อินเทอร์เฟซปรากฏในแพ็คเกจ ไฟล์ bytecode ของอินเทอร์เฟซมีอยู่ในไดเร็กทอรีที่มีชื่อเดียวกับชื่อแพ็กเกจ

อินเทอร์เฟซแตกต่างจาก คลาสนามธรรม Java ด้วยวิธีต่อไปนี้:

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

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

คุณสมบัติของอินเทอร์เฟซ

  • ไม่จำเป็นต้องประกาศอินเทอร์เฟซเป็นนามธรรมผ่าน คีย์เวิร์ด abstract เนื่องจากเป็นนามธรรมโดยปริยาย
  • คำหลักที่เป็นนามธรรมไม่จำเป็นต้องประกาศวิธีการที่เป็นนามธรรมเนื่องจากเป็นนามธรรมโดยปริยาย
  • วิธีการทั้งหมดในอินเทอร์เฟซเป็นแบบสาธารณะโดยปริยาย

จะประกาศอินเทอร์เฟซได้อย่างไร?

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

ไวยากรณ์ของอินเทอร์เฟซ:

อินเทอร์เฟซ name_of_the_interface {

#ประกาศเขต

#ประกาศวิธีนามธรรม

}

ตัวอย่างเช่นอินเทอร์เฟซ Player

{

อายุ int สุดท้าย = 40;

คำนวณ int();

}

วิธีการใช้อินเทอร์เฟซ?

ในการปรับใช้อินเทอร์เฟซจะ ใช้ คำสำคัญ ' ดำเนินการ' คลาสสามารถใช้งานได้มากกว่าหนึ่งอินเทอร์เฟซ ในกรณีดังกล่าว คำหลัก ' ดำเนินการ' จะตามด้วยรายการอินเทอร์เฟซที่คั่นด้วยเครื่องหมายจุลภาค คีย์เวิร์ดใช้ในการประกาศคลาส

ตัวอย่างของการใช้อินเทอร์เฟซแสดงอยู่ด้านล่าง:

คลาส Maruti ดำเนินการ Car

ตัวอย่างของโค้ดที่แสดงการใช้งานอินเทอร์เฟซใน Java แสดงอยู่ด้านล่าง

แหล่งที่มา

รหัสสร้างผลลัพธ์ต่อไปนี้:

รหัสที่ใช้การใช้งานอินเทอร์เฟซหลายตัวแสดงอยู่ด้านล่าง

แหล่งที่มา

รหัสสร้างผลลัพธ์ต่อไปนี้:

ข้อความบางส่วน…

ข้อความอื่นๆ…

เหตุใดจึงใช้อินเทอร์เฟซ

  • อินเทอร์เฟซใช้สำหรับบรรลุความเป็นนามธรรมทั้งหมด
  • การสืบทอดหลายรายการใน Java สามารถทำได้โดยใช้การสืบทอด เนื่องจาก Java ไม่รองรับการสืบทอดหลายรายการ
  • การเชื่อมต่อแบบหลวมสามารถทำได้โดยใช้อินเทอร์เฟซ
  • โดยการใช้การนำนามธรรมไปปฏิบัติในจาวาสามารถทำได้

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

หากใช้ทั้งอินเทอร์เฟซ Java และคลาสนามธรรม Java เพื่อให้ได้สิ่งที่เป็นนามธรรม เมื่อใดควรใช้อินเทอร์เฟซและคลาสนามธรรม

  • คลาสนามธรรมจะใช้เมื่อผู้ใช้ต้องการกำหนดเทมเพลตสำหรับกลุ่มของคลาสย่อย
  • อินเทอร์เฟซถูกใช้เมื่อผู้ใช้ต้องการกำหนดบทบาทสำหรับคลาสอื่น

ข้อดีบางประการของการเป็นนามธรรมคือ:

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

บทสรุป

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

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมและนำแนวคิดไปใช้ในปัญหาในชีวิตจริง คุณสามารถดู หลักสูตร Masters in Computer Science ที่จัดทำโดย upGrad และ IIIT-Bangalore ซึ่ง ได้รับการยอมรับจาก มหาวิทยาลัย Liverpool John Moores หลักสูตรนี้ออกแบบมาสำหรับมืออาชีพระดับเริ่มต้น (อายุ 21-45 ปี) โดยให้การฝึกอบรมมากกว่า 500 ชั่วโมงจากผู้เชี่ยวชาญชั้นนำในอุตสาหกรรมและคณะวิศวกรรมซอฟต์แวร์ รายละเอียดเพิ่มเติมของหลักสูตรสามารถตรวจสอบได้ที่หน้าเว็บทางการของ upGrad

พัฒนาตัวเองและเตรียมพร้อมสำหรับอนาคต

สมัคร Executive PG Program ด้าน Software Development จาก IIIT-B