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

Abstraction คืออะไร Java?

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

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

มาศึกษานามธรรมใน OOP ด้วยตัวอย่าง:

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

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

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

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

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

ความแตกต่างระหว่างนามธรรมและการห่อหุ้ม

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

ความแตกต่างระหว่าง Abstract Class และ Interface

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

คลาสนามธรรมคืออะไร?

ชั้นเรียนบทคัดย่อ เป็นคลาสประเภทหนึ่งใน Javaที่ประกาศวิธีการเชิงนามธรรมตั้งแต่หนึ่งวิธีขึ้นไป คลาสเหล่านี้สามารถมีวิธีการเชิงนามธรรมและวิธีที่เป็นรูปธรรมได้ คลาสปกติไม่สามารถมีวิธีการเชิงนามธรรมได้ คลาสนามธรรมคือคลาสที่มีวิธีนามธรรมอย่างน้อยหนึ่งวิธี เราสามารถเข้าใจแนวคิดได้โดย ตัวอย่างรูปร่างใน java.

พิจารณาลำดับชั้นคลาสต่อไปนี้ซึ่งประกอบด้วยคลาส Shape ซึ่งสืบทอดมาจากคลาส Rectangle, Circle และ Triangle จำนวนสามคลาส คลาส Shape ถูกสร้างขึ้นเพื่อบันทึกแอตทริบิวต์และเมธอดทั่วไปที่ใช้ร่วมกันโดยคลาส Rectangle, Circle และ Triangle จำนวนสามคลาส calculateArea() เป็นหนึ่งในเมธอดดังกล่าวที่ใช้ร่วมกันโดยคลาสย่อยทั้งสามคลาสและมีอยู่ในคลาส Shape

ชั้นเรียนนามธรรมใน Java

ตัวอย่างรูปทรงนามธรรม

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

คลาสนามธรรม

วัตถุในคลาสสามเหลี่ยมจะให้รูปสามเหลี่ยม ซึ่งเป็นรูปร่างทั่วไปในชีวิตประจำวันอีกครั้ง

คลาสนามธรรม

แต่วัตถุของ 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ข้อมูลชุดเดียวกันสามารถนำไปใช้ในการใช้งานที่แตกต่างกันได้