คลาสนามธรรมใน 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