Java Abstraction- การเรียนรู้ OOP ด้วย Abstraction ใน Java



บทความเกี่ยวกับ Java Abstraction นี้จะช่วยให้คุณเข้าใจการใช้คลาสบทคัดย่อและอินเทอร์เฟซและวิธีบรรลุโดยใช้ Abstraction

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

ฉันจะกล่าวถึงหัวข้อที่กล่าวถึงด้านล่างในบทความนี้:





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



Abstraction ใน OOP

เมื่อเราพูดถึงสิ่งที่เป็นนามธรรมโดยทั่วไปภาษาซอฟต์แวร์เป็นตัวอย่างของ Abstraction ลองมาเป็นตัวอย่างและเขียนคำสั่ง as-

x = y + z

วิธีใช้ฉากสาธารณะ

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



Java Abstraction คืออะไร?

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

การโทร - Java Abstraction -Edureka

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

ก) คลาสนามธรรม

b) อินเทอร์เฟซ

มาทำความเข้าใจแนวคิดเหล่านี้โดยละเอียด

คลาสนามธรรม

คลาสบทคัดย่อมีคีย์เวิร์ด 'abstract' แต่มันหมายความว่าอย่างไร? หากคุณสร้างคลาสนามธรรมจะไม่สามารถสร้างอินสแตนซ์ได้นั่นคือคุณไม่สามารถสร้างวัตถุของคลาสนามธรรมได้ นอกจากนี้คลาสนามธรรมอาจมีนามธรรมและวิธีการที่เป็นรูปธรรม

บันทึก: คุณสามารถบรรลุความเป็นนามธรรม 0-100% โดยใช้คลาสนามธรรม

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

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

กีฬาคลาสนามธรรม {// กีฬาคลาสนามธรรมบทคัดย่อโมฆะกระโดด () // วิธีนามธรรม}

อินเตอร์เฟซ

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

วิธีใช้วิธีการ tostring ใน java

โดยทั่วไปอินเทอร์เฟซคือกลุ่มของวิธีการที่เกี่ยวข้องกับเนื้อความว่างเปล่า ให้เราเข้าใจอินเทอร์เฟซโดยใช้ตัวอย่างของอินเทอร์เฟซของ Shape พร้อมวิธีการที่เกี่ยวข้อง

รูปร่างของอินเทอร์เฟซสาธารณะ {public void draw () public double getArea ()}

วิธีเหล่านี้จำเป็นต้องมีอยู่ในทุก ‘รูปร่าง’ ใช่ไหม? แต่การทำงานของพวกเขาจะแตกต่างออกไป

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

ตอนนี้เรามาดูฟังก์ชันการทำงานว่าคุณจะใช้อินเทอร์เฟซนี้ได้อย่างไร
ในการใช้งานอินเทอร์เฟซนี้ชื่อชั้นเรียนของคุณจะเปลี่ยนเป็น Shape ใด ๆ สมมติว่า 'Circle' ดังนั้นในการติดตั้งอินเทอร์เฟซคลาสฉันจะใช้คีย์เวิร์ด 'ใช้':

วงกลมสาธารณะใช้รูปร่าง {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

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

ตัวอย่างแบบเรียลไทม์ของสิ่งที่เป็นนามธรรมใน java

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

Public Interface Sport {void play ()} // ตอนนี้เราจะสร้างคลาสชื่อ 'Badminton' คลาสแบดมินตันสาธารณะที่ใช้ Sport {@Override public void play () {System.out.println ('Playing badminton')}} // ต่อไปมาสร้างคลาส 'ฟุตบอล' คลาสสาธารณะคลาสสุดท้ายของเรา Sport {@Override public void play () {System.out.println ('Playing football')}

ขั้นตอนสุดท้ายคือการสร้างคลาสหลักชื่อ“ SportInterface”

SportInterface สาธารณะ {public static void main (String args []) {// your code here}}

เมื่อคุณรันโปรแกรมข้างต้นผลลัพธ์จะเป็นดังที่แสดงด้านล่าง:

เล่นแบดมินตัน ------------------- เล่นฟุตบอล

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

Abstraction vs Encapsulation

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

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

ตอนนี้คุณเข้าใจแล้ว“ Java Abstraction คืออะไร” ลองดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก 'Java Abstraction' และเราจะติดต่อกลับโดยเร็วที่สุด