สิ่งที่เป็นนามธรรมใน Java
Abstraction คืออะไร Java?
สิ่งที่เป็นนามธรรม เป็นแนวคิดของการเขียนโปรแกรมเชิงวัตถุที่ "แสดง" เฉพาะคุณลักษณะที่จำเป็นและ "ซ่อน" ข้อมูลที่ไม่จำเป็น วัตถุประสงค์หลักของการแยกส่วนคือการซ่อนรายละเอียดที่ไม่จำเป็นจากผู้ใช้ การแยกส่วนคือการเลือกข้อมูลจากกลุ่มข้อมูลขนาดใหญ่เพื่อแสดงเฉพาะรายละเอียดที่เกี่ยวข้องของวัตถุให้ผู้ใช้เห็นเท่านั้น ช่วยลดความซับซ้อนและความพยายามในการเขียนโปรแกรม ถือเป็นแนวคิดที่สำคัญที่สุดแนวคิดหนึ่งของ OOP
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
มาศึกษานามธรรมใน OOP ด้วยตัวอย่าง:
สมมติว่าคุณต้องการสร้างแอปพลิเคชันธนาคารและคุณถูกขอให้รวบรวมข้อมูลทั้งหมดเกี่ยวกับลูกค้าของคุณ มีโอกาสที่คุณจะได้ข้อมูลต่อไปนี้เกี่ยวกับลูกค้า
อย่างไรก็ตาม ไม่จำเป็นต้องใช้ข้อมูลข้างต้นทั้งหมดในการสร้างแอปพลิเคชันธนาคาร ดังนั้น คุณต้องเลือกเฉพาะข้อมูลที่เป็นประโยชน์สำหรับคุณเท่านั้น ใบสมัครธนาคาร จากสระนั้น ข้อมูลเช่นชื่อ ที่อยู่ ข้อมูลภาษี ฯลฯ เหมาะสมสำหรับแอปพลิเคชันธนาคารซึ่งเป็นตัวอย่างนามธรรมใน OOP
เนื่องจากเราได้ดึงข้อมูล/ลบ/เลือกข้อมูลลูกค้าจากกลุ่มที่ใหญ่กว่า กระบวนการนี้จึงเรียกว่า Abstraction ใน OOPอย่างไรก็ตาม ข้อมูลเดียวกันเมื่อแยกออกมาแล้วสามารถนำไปใช้กับแอปพลิเคชันต่างๆ ได้มากมาย ตัวอย่างเช่น คุณสามารถใช้ข้อมูลเดียวกันสำหรับใบสมัครโรงพยาบาล ใบสมัครพอร์ทัลงาน ฐานข้อมูลของรัฐบาล ฯลฯ โดยแทบไม่ต้องปรับเปลี่ยนใดๆ ดังนั้น ข้อมูลดังกล่าวจึงกลายเป็นข้อมูลหลักของคุณ นี่คือข้อดีของการแยกย่อยใน OOP
ความแตกต่างระหว่างนามธรรมและการห่อหุ้ม
สิ่งที่เป็นนามธรรม | encapsulation |
---|---|
นามธรรมในการเขียนโปรแกรมเชิงวัตถุช่วยแก้ปัญหาในระดับการออกแบบ | การห่อหุ้มช่วยแก้ปัญหาระดับการใช้งาน |
การแยกส่วนในการเขียนโปรแกรมคือการซ่อนรายละเอียดที่ไม่ต้องการในขณะที่แสดงข้อมูลที่สำคัญที่สุด | การห่อหุ้มหมายถึงการรวมรหัสและข้อมูลไว้ในหน่วยเดียว |
การสรุปข้อมูลใน Java ช่วยให้สามารถเพ่งความสนใจไปที่สิ่งที่วัตถุข้อมูลต้องมี | encapsulation หมายความถึงการซ่อนรายละเอียดภายในหรือกลไกของวิธีที่วัตถุทำบางสิ่งเพื่อเหตุผลด้านความปลอดภัย |
ความแตกต่างระหว่าง Abstract Class และ Interface
คลาสนามธรรม | อินเตอร์เฟซ |
---|---|
คลาสนามธรรมสามารถมีได้ทั้งวิธีนามธรรมและไม่ใช่นามธรรม | อินเทอร์เฟซสามารถมีได้เฉพาะวิธีนามธรรมเท่านั้น |
ไม่รองรับการสืบทอดหลายรายการ | รองรับการสืบทอดหลายรายการ |
สามารถจัดเตรียมการใช้งานอินเทอร์เฟซได้ | ไม่สามารถจัดเตรียมการใช้งานคลาสนามธรรมได้ |
คลาสนามธรรมสามารถมีวิธีการสาธารณะที่ได้รับการป้องกันและเป็นนามธรรม | อินเทอร์เฟซสามารถมีได้เฉพาะวิธีนามธรรมสาธารณะเท่านั้น |
คลาสนามธรรมสามารถมีตัวแปรสุดท้าย คงที่ หรือคงที่พร้อมกับตัวระบุการเข้าถึง | อินเทอร์เฟซสามารถมีได้เฉพาะตัวแปรสุดท้ายแบบคงที่สาธารณะเท่านั้น |
คลาสนามธรรมคืออะไร?
ชั้นเรียนบทคัดย่อ เป็นคลาสประเภทหนึ่งใน Javaที่ประกาศวิธีการเชิงนามธรรมตั้งแต่หนึ่งวิธีขึ้นไป คลาสเหล่านี้สามารถมีวิธีการเชิงนามธรรมและวิธีที่เป็นรูปธรรมได้ คลาสปกติไม่สามารถมีวิธีการเชิงนามธรรมได้ คลาสนามธรรมคือคลาสที่มีวิธีนามธรรมอย่างน้อยหนึ่งวิธี เราสามารถเข้าใจแนวคิดได้โดย ตัวอย่างรูปร่างใน java.
พิจารณาลำดับชั้นคลาสต่อไปนี้ซึ่งประกอบด้วยคลาส Shape ซึ่งสืบทอดมาจากคลาส Rectangle, Circle และ Triangle จำนวนสามคลาส คลาส Shape ถูกสร้างขึ้นเพื่อบันทึกแอตทริบิวต์และเมธอดทั่วไปที่ใช้ร่วมกันโดยคลาส Rectangle, Circle และ Triangle จำนวนสามคลาส calculateArea() เป็นหนึ่งในเมธอดดังกล่าวที่ใช้ร่วมกันโดยคลาสย่อยทั้งสามคลาสและมีอยู่ในคลาส Shape
ตอนนี้ สมมติว่าคุณเขียนโค้ดเพื่อสร้างออบเจ็กต์สำหรับคลาสที่อธิบายไว้ข้างต้น มาดูกันว่าสิ่งเหล่านี้เป็นอย่างไร วัตถุจะดูอยู่ในโลกแห่งความเป็นจริง วัตถุในคลาสสี่เหลี่ยมผืนผ้าจะให้รูปสี่เหลี่ยมผืนผ้า ซึ่งเป็นรูปร่างที่เราพบเห็นได้ทั่วไปในชีวิตประจำวัน
วัตถุในคลาสสามเหลี่ยมจะให้รูปสามเหลี่ยม ซึ่งเป็นรูปร่างทั่วไปในชีวิตประจำวันอีกครั้ง
แต่วัตถุของ Class Shape จะมีลักษณะอย่างไรในโลกแห่งความเป็นจริง ??
หากคุณสังเกตคลาส Shape ทำหน้าที่ใน เป้าหมายของเราในการบรรลุ มรดก และความหลากหลาย แต่มันไม่ได้ถูกสร้างขึ้นเพื่อให้อินสแตนซ์ คลาสดังกล่าวสามารถติดป้ายกำกับได้ นามธรรม- คลาสนามธรรมจาวาไม่สามารถสร้างอินสแตนซ์ได้
ไวยากรณ์:
abstract class Shape{ // code }
เป็นไปได้ว่าคุณอย่าติดป้ายกำกับคลาส Shape เป็น Abstract แล้วจึงสร้างอินสแตนซ์ขึ้นมา แต่ออบเจ็กต์ดังกล่าวจะไม่มีประโยชน์ในโค้ดของคุณและจะเปิดช่องสำหรับข้อผิดพลาดที่อาจเกิดขึ้น สิ่งนี้จึงไม่พึงปรารถนา
Abstract Method คืออะไร Java?
วิธีการสรุป in Javaเป็นวิธีการที่มีเพียงคำจำกัดความของวิธีการ แต่ไม่มีการใช้งาน วิธีที่ไม่มีเนื้อความเรียกว่าวิธีนามธรรม จะต้องประกาศในคลาสนามธรรม วิธีนามธรรมจะไม่มีวันถือเป็นที่สิ้นสุดเนื่องจากคลาสนามธรรมต้องใช้วิธีนามธรรมทั้งหมด
อย่างที่ทราบกันดีว่าสูตรในการคำนวณพื้นที่สำหรับสี่เหลี่ยม วงกลม และสามเหลี่ยมนั้นแตกต่างกัน วิธีการคำนวณพื้นที่() จะต้องถูกแทนที่โดยคลาสที่สืบทอด มันไม่สมเหตุสมผลเลยที่จะนิยามมันในคลาส Shape แต่เราต้องแน่ใจว่าคลาสที่สืบทอดทั้งหมดนั้นมีเมธอด
วิธีการดังกล่าวสามารถระบุได้ บทคัดย่อ.
ไวยากรณ์:
abstract public void calculateArea();
สำหรับ วิธีนามธรรม ไม่จำเป็นต้องนำไปปฏิบัติ กำหนดเฉพาะลายเซ็นของวิธีการเท่านั้น
ตัวอย่างรหัสนามธรรม
abstract class Shape{ abstract void calculateArea(); } class guru99 extends Shape{ void calculateArea(){System.out.println("Area of Shape");} public static void main(String args[]){ Shape obj = new guru99(); obj.calculateArea(); } }
ข้อดีของนามธรรม
- ประโยชน์หลักของการใช้ Abstraction ใน การเขียนโปรแกรม คือมันช่วยให้คุณสามารถจัดกลุ่มคลาสที่เกี่ยวข้องกันหลายคลาสเป็นพี่น้องกัน
- การแยกส่วนในการเขียนโปรแกรมเชิงวัตถุช่วยลดความซับซ้อนของกระบวนการออกแบบและการใช้งานซอฟต์แวร์
คำหลักสุดท้ายใน Java
ตัวแก้ไขขั้นสุดท้ายนำไปใช้กับคลาส วิธีการ และตัวแปร ความหมายของคำสุดท้ายนั้นแตกต่างกันไปในแต่ละบริบท แต่แนวคิดที่สำคัญก็เหมือนกัน
- ไม่สามารถสืบทอดคลาสสุดท้ายได้
- ตัวแปรสุดท้ายจะกลายเป็นค่าคงที่และค่าของมันไม่สามารถเปลี่ยนแปลงได้
- วิธีสุดท้ายไม่สามารถแทนที่ได้ ซึ่งทำเพื่อเหตุผลด้านความปลอดภัย และวิธีการเหล่านี้ใช้เพื่อการปรับให้เหมาะสม
ตัวอย่าง :- เพื่อเรียนรู้คำหลักเชิงนามธรรมและคำสำคัญสุดท้าย
ขั้นตอน 1) คัดลอกโค้ดต่อไปนี้ลงในโปรแกรมแก้ไข
abstract class Shape{ final int b = 20; public void display(){ System.out.println("This is display method"); } abstract public void calculateArea(); } public class Rectangle extends Shape{ public static void main(String args[]){ Rectangle obj = new Rectangle(); obj.display(); //obj.b=200; } //public void calculateArea(){} }
ขั้นตอน 2) บันทึก คอมไพล์ และรันโค้ด
ขั้นตอน 3) ผิดพลาด =? วิธีการนามธรรมไม่ได้ถูกนำมาใช้ในคลาสสี่เหลี่ยมผืนผ้า หากต้องการแก้ไขปัญหาบรรทัดที่ไม่มีเครื่องหมายข้อคิดเห็น #15
ขั้นตอน 4) บรรทัดที่ไม่ใส่เครื่องหมายข้อคิดเห็น # 13 บันทึกและคอมไพล์โค้ด
ขั้นตอน 5) ข้อผิดพลาด = ? ตัวแปร b ถือเป็นที่สิ้นสุด
เมื่อใดจึงควรใช้ Abstract Methods & Abstract Class?
วิธีการเชิงนามธรรมส่วนใหญ่จะประกาศโดยที่คลาสย่อยตั้งแต่สองคลาสขึ้นไปกำลังทำสิ่งเดียวกันในวิธีที่ต่างกันผ่านการนำไปใช้งานที่ต่างกัน นอกจากนี้ยังขยายคลาส Abstract เดียวกันและเสนอการใช้งานวิธี abstract ที่แตกต่างกัน
คลาสแบบนามธรรมช่วยอธิบายประเภททั่วไปของพฤติกรรมและลำดับชั้นของคลาสการเขียนโปรแกรมเชิงวัตถุ นอกจากนี้ยังอธิบายคลาสย่อยเพื่อเสนอรายละเอียดการใช้งานของคลาสแบบนามธรรมอีกด้วย
สรุป:
- นามธรรมในการเขียนโปรแกรมเป็นกระบวนการในการเลือกชุดข้อมูลที่สำคัญสำหรับ วัตถุ ในซอฟต์แวร์ของคุณและละทิ้งสิ่งที่ไม่มีนัยสำคัญออกไป
- เมื่อคุณสร้างแบบจำลองวัตถุของคุณโดยใช้ Data Abstraction แล้ว Javaข้อมูลชุดเดียวกันสามารถนำไปใช้ในการใช้งานที่แตกต่างกันได้