เรียนรู้ Data Abstraction ใน Java

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

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

Object-Oriented Programming จัดเตรียมวิธีการใช้แนวคิด data abstraction Java เป็นหนึ่งใน Object-Oriented Programming ซึ่งเป็นไปตามคุณลักษณะของ data abstraction ในภาษาการเขียนโปรแกรมเหล่านี้ คลาสนามธรรมและอินเทอร์เฟซจะใช้เพื่อให้ได้ข้อมูลที่เป็นนามธรรม

กระบวนการ data abstraction ใน Java ทำได้ผ่านคลาส abstract ของคลาส อินเทอร์เฟซยังใช้สำหรับการแยกข้อมูลนอกเหนือจากคลาสนามธรรม คีย์เวิร์ด “abstract” ถูกใช้เป็น non-access modifier สำหรับเมธอดและคลาส เมื่อกำหนดด้วยการเข้าถึงคีย์เวิร์ด คลาสจะเป็นคลาสนามธรรมที่ไม่อนุญาตให้สร้างอ็อบเจ็กต์ ภาคผนวกของคลาสนามธรรมเป็นไปได้ก็ต่อเมื่อได้รับมาจากคลาสอื่น เมธอดนามธรรมคือเมธอดที่สามารถใช้ได้เฉพาะในคลาสนามธรรมเท่านั้น วิธีการเหล่านี้ไม่มีเนื้อหาวิธีการ

คลาสย่อยโดยทั่วไปจัดเตรียมร่างกาย คลาสนามธรรมสามารถประกอบด้วยเมธอดที่เป็นทั้งแบบปกติและแบบนามธรรม

สารบัญ

ความแตกต่างระหว่างคลาสนามธรรมกับเมธอดนามธรรม

ความแตกต่างระหว่างคลาสนามธรรมและวิธีการนามธรรมคือ:

1. คลาสนามธรรมคือคลาสที่ประกาศด้วยคีย์เวิร์ด abstract

2. วิธีการเชิงนามธรรมเป็นวิธีการประเภทหนึ่งที่ได้รับการประกาศโดยไม่ต้องนำไปปฏิบัติ

3. คลาสนามธรรมไม่จำเป็นต้องมีเมธอด abstract ทั้งหมดภายในตัวมันเอง นอกจากนี้ยังสามารถมีวิธีการที่ไม่เป็นนามธรรม

4. เมื่อใดก็ตามที่เมธอดถูกกำหนดเป็นเมธอดนามธรรม ก็ควรกำหนดอีกครั้งในคลาสย่อยด้วย สิ่งนี้จะทำให้การบังคับแทนที่บังคับและทำให้ subclass abstract

5. หาก class ใดมี method ที่เป็นนามธรรม ไม่ว่า abstract method หนึ่งวิธีหรือมากกว่านั้น ควรประกาศ abstract โดยใช้คำหลัก abstract

6. คลาสนามธรรมไม่สามารถมีวัตถุใด ๆ ไม่สามารถใช้ตัวดำเนินการใหม่เพื่อสร้างตัวอย่างคลาสนามธรรมได้

7. มีคอนสตรัคเตอร์เริ่มต้นอยู่เสมอในคลาสนามธรรม นอกจากนี้ คอนสตรัคเตอร์แบบกำหนดพารามิเตอร์สามารถมีอยู่ในคลาสนามธรรมได้

Java Abstract class

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

ไวยากรณ์ของคลาสนามธรรมใน Java แสดงอยู่ด้านล่าง

รหัสด้านบนนำมา จาก https://www.softwaretestinghelp.com/what-is-abstraction-in-java/

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

อ่านเพิ่มเติมเกี่ยวกับคลาสนามธรรม java ที่นี่

Java Abstract Method

เมธอดนามธรรมของ Java คือเมธอดที่นำหน้าด้วยคีย์เวิร์ด "นามธรรม" แต่ไม่มีการนำเมธอดไปใช้ เมธอดนามธรรมของ Java ถูกประกาศภายในคลาสนามธรรมของ Java

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

การนำไปใช้ในคลาสย่อยสามารถใช้เมธอด abstract ได้ คลาสย่อยนี้จะสืบทอดคลาสนามธรรมและจะดำเนินการนำเมธอดนามธรรมไปใช้ ไวยากรณ์ทั่วไปของวิธีนามธรรมคือ

นามธรรมเป็นโมฆะ methodName (parameter_list);

ควรสังเกตกฎเล็กน้อยในขณะที่เขียนวิธีการนามธรรม

  • หากคลาสมีเมธอดนามธรรมมากกว่าหนึ่งเมธอด คลาสนั้นจะกลายเป็นคลาสนามธรรม
  • ไม่ควรมีคำหลักอื่นใดนอกจาก "นามธรรม" ในขณะที่กำหนดคลาสนามธรรมและวิธีการ

เมื่อพิจารณาจากประเด็นข้างต้นแล้ว ไม่อนุญาตให้ใช้ความเป็นไปได้ต่อไปนี้ใน Java

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

ตัวอย่างของ data abstraction ใน Java แสดงอยู่ด้านล่าง

https://www.javatpoint.com/how-to-achieve-abstraction-in-java _

รหัสด้านบนนำมา จาก https://www.softwaretestinghelp.com/what-is-abstraction-in-java/

ในรหัสที่แสดงด้านบนมีคลาส Bank มีวิธีการที่เป็นนามธรรมภายในคลาส Bank ซึ่งก็คือ getInterestRate() มีการประกาศ BOI และ ICICI อีก 2 คลาส ซึ่งสืบทอดคลาส Bank คลาสที่ประกาศเหล่านี้สืบทอดคลาส Bank และใช้เมธอด getInterestRate() เพื่อส่งคืนอัตราดอกเบี้ย

วัตถุของธนาคารถูกสร้างขึ้นในวิธีการหลัก วัตถุประสงค์ของธนาคารประกอบด้วยอ็อบเจ็กต์คลาส ICICI ซึ่งแสดงอัตราดอกเบี้ย ในขั้นตอนต่อไป วัตถุของคลาส BOI ก็ถูกสร้างขึ้นเช่นกัน ซึ่งแสดงอัตราดอกเบี้ย

การแยกข้อมูลผ่านอินเทอร์เฟซ

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

คุณลักษณะบางประการของอินเทอร์เฟซใน Java คือ:

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

ไวยากรณ์ของอินเทอร์เฟซแสดงอยู่ด้านล่าง:

ไวยากรณ์ข้าง ต้น ใช้จาก https://www.javatpoint.com/how-to-achieve-abstraction-in-java

อินเทอร์เฟซสามารถใช้ผ่านคำหลัก "การใช้งาน"

ความแตกต่างเล็กน้อยระหว่างคลาสนามธรรมและอินเทอร์เฟซคือ:

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

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

บทสรุป

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

นามธรรมข้อมูลคืออะไร?

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

ข้อดีของนามธรรมใน Java คืออะไร?

จะบรรลุสิ่งที่เป็นนามธรรมใน Java ได้อย่างไร

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