แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่างแพ็คเกจและอินเทอร์เฟซใน Java

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

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบแพคเกจอินเตอร์เฟซ
ขั้นพื้นฐานแพ็คเกจเป็นกลุ่มของคลาสและ / หรืออินเทอร์เฟซร่วมกันการเชื่อมต่อเป็นกลุ่มของวิธีการนามธรรมและเขตข้อมูลคงที่
คำหลักแพ็คเกจถูกสร้างขึ้นโดยใช้คำหลัก "แพ็คเกจ"อินเทอร์เฟซถูกสร้างขึ้นโดยใช้คีย์เวิร์ด "Interface"
วากยสัมพันธ์แพ็คเกจ package_name;
คลาสสาธารณะ class_name {
.
(ร่างของคลาส)
.
}
อินเตอร์เฟส interface_name {
การประกาศตัวแปร
การประกาศวิธีการ
}
ทางเข้าแพคเกจสามารถนำเข้าอินเทอร์เฟซสามารถขยายได้โดยอินเทอร์เฟซอื่นและนำไปใช้โดยคลาส
เข้าถึงคำสำคัญแพคเกจสามารถนำเข้าโดยใช้คำหลัก "นำเข้า"การเชื่อมต่อสามารถนำมาใช้โดยใช้คำหลัก "ใช้งาน"

คำจำกัดความของแพ็คเกจ

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

การสร้างแพ็คเกจ

สำหรับการสร้างแพ็คเกจให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดไฟล์จากนั้นประกาศชื่อของแพ็คเกจที่ด้านบนของไฟล์เช่น [package package_name; ] ชื่อแพ็คเกจเป็นชื่อที่คุณต้องการให้กับแพคเกจ
  2. ถัดไปคุณกำหนดคลาสที่คุณต้องการใส่ในแพ็คเกจและจำไว้ว่าคุณประกาศให้เป็นสาธารณะ
  3. บันทึกไฟล์เป็นไฟล์. java จากนั้นรวบรวมไฟล์จากนั้น” .class” จะได้รับสำหรับไฟล์นั้น
  4. ในการสร้างแพ็คเกจสำหรับไฟล์นี้คำสั่งที่ใช้คือ“ javac -d file_name.java คุณสามารถเห็นได้ว่าแพ็คเกจนั้นสร้างขึ้นด้วยไฟล์” .class” ในไดเรกทอรีปัจจุบัน เพื่อวางไว้ในไดเรกทอรีหลักใช้“ javac -d . คำสั่ง file_name.java”
  5. คุณยังสามารถสร้างแพ็คเกจย่อยโดยการประกาศชื่อแพ็คเกจย่อยเป็น [แพ็คเกจแพ็คเกจ_name1 package_name2; ] ที่ด้านบนของไฟล์
 แพ็คเกจ Mypackage; คลาส myclass สาธารณะ {โมฆะ public displayMypackage () {system.out.println ("เมธอด displayMypackage ของคลาส myclass ของแพ็กเกจ Mypackage"); } 

ใช้แพ็คเกจ

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

 นำเข้า package_name class_name; หรือนำเข้า package_name *; 

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

ทีนี้มาดูการใช้แพ็คเกจพร้อมตัวอย่าง

 นำเข้า Mypackage myclass {คลาส TestMypackage {โมฆะสแตติกสาธารณะหลัก (สตริง args []) {myclass ob1 = new myclass (); ob1.displayMypackage (); }} // วิธีการส่งออก displayMypackage ของคลาส myclass ของแพ็กเกจ Mypackage 

ในโค้ดด้านบนคลาส TestMypackage ได้อิมพอร์ตแพ็กเกจ Mypackage และใช้เมธอด displayMypackage ()

นิยามของอินเตอร์เฟส

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

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

 ส่วนต่อประสาน {float pi = 3.14; float find_area (float a, float b) {} class Circle ใช้พื้นที่ {float find_area (float a, float b) {return (pi * a * a); } รูปร่างคลาส {โมฆะสาธารณะคงที่หลัก (สตริง args []) {พื้นที่ A = พื้นที่ใหม่ (); Circle C = วงกลมใหม่ (); A = C; float F = พื้นที่ find_area (10, 10); system.out.println ("พื้นที่ของวงกลมคือ:" + F); } 

ในโค้ดด้านบนเราได้สร้างพื้นที่อินเทอร์เฟซและคลาสของวงกลมได้ใช้พื้นที่อินเทอร์เฟซ ฟิลด์“ pi” ได้รับการเริ่มต้นในอินเทอร์เฟซในเวลาที่ประกาศ Circle class ได้กำหนดวิธีนามธรรมของพื้นที่คลาสตามความต้องการ

ความแตกต่างที่สำคัญระหว่างแพ็คเกจและส่วนต่อประสานใน Java

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

สรุป:

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

Top