บทช่วยสอน Java อินเตอร์เฟซ ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ อินเตอร์เฟซที่ประกาศ,การดำเนินงานของอินเตอร์เฟซ,อินเตอร์เฟซการรับมรดก,อินเตอร์เฟซมรดกหลาย,อินเตอร์เฟซมาร์กเกอร์,
อินเตอร์เฟซ (อังกฤษ: Interface) ในการเขียนโปรแกรมภาษา Java เป็นประเภทนามธรรมคือชุดของวิธีการนามธรรมอินเตอร์เฟซที่มักจะติดต่อไปยังคำสั่ง ชั้นโดยสืบทอดโหมดอินเตอร์เฟซจึงจะได้รับมรดกอินเตอร์เฟซที่ใช้วิธีการที่เป็นนามธรรม
อินเตอร์เฟซที่ไม่ได้เป็นชั้นเรียนและวิธีการระดับอินเตอร์เฟซที่เตรียมจะคล้ายกันมาก แต่พวกเขาอยู่ในแนวคิดที่แตกต่าง ระดับอธิบายคุณสมบัติของวัตถุและวิธีการ ระดับวิธีการที่จะใช้อินเตอร์เฟซที่มี
เว้นแต่การดำเนินงานของระดับอินเตอร์เฟซเป็นนามธรรมหรืออื่น ๆ เพื่อกำหนดอินเตอร์เฟซชั้นเรียนวิธีการทั้งหมด
อินเตอร์เฟซที่ไม่สามารถ instantiated แต่ก็สามารถดำเนินการได้ คลาสที่ดำเนินการติดต่อวิธีการทั้งหมดที่อธิบายไว้ในอินเตอร์เฟซจะต้องดำเนินการมิฉะนั้นก็จะต้องได้รับการประกาศให้เป็นระดับนามธรรม นอกจากนี้ใน Java ประเภทอินเตอร์เฟซที่ใช้ในการประกาศตัวแปรที่พวกเขาจะกลายเป็นตัวชี้โมฆะหรือถูกผูกไว้กับวัตถุของอินเตอร์เฟซนี้
อินเตอร์เฟซคล้ายกับจุดชั้นเรียน:
ไวยากรณ์ประกาศอินเตอร์เฟซจะเป็นดังนี้:
[可见度] interface 接口名称 [extends 其他的类名] { // 声明变量 // 抽象方法 }
คำหลักอินเตอร์เฟซที่จะใช้ในการประกาศอินเตอร์เฟซ นี่คือตัวอย่างง่ายๆของการประกาศอินเตอร์เฟซ
/* 文件名 : NameOfInterface.java */ import java.lang.*; //引入包 public interface NameOfInterface { //任何类型 final, static 字段 //抽象方法 }อินเตอร์เฟซที่มีคุณสมบัติดังต่อไปนี้:
/* 文件名 : Animal.java */ interface Animal { public void eat(); public void travel(); }
เมื่อชั้นใช้อินเตอร์เฟซระดับอินเตอร์เฟซที่ทุกวิธีการเพื่อให้บรรลุ มิฉะนั้นการเรียนจะต้องได้รับการประกาศให้เป็นระดับนามธรรม
ใช้การดำเนินการระดับคำหลักที่ใช้อินเตอร์เฟซ ในการประกาศคลาสดำเนินคำหลักที่อยู่เบื้องหลังการประกาศคลาส
ใช้ไวยากรณ์อินเตอร์เฟซที่คุณสามารถใช้สูตรนี้
th. implements 接口名称[, 其他接口, 其他接口th., th.] th.
/* 文件名 : MammalInt.java */ public class MammalInt implements Animal{ public void eat(){ System.out.println("Mammal eats"); } public void travel(){ System.out.println("Mammal travels"); } public int noOfLegs(){ return 0; } public static void main(String args[]){ MammalInt m = new MammalInt(); m.eat(); m.travel(); } }
ตัวอย่างข้างต้นรวบรวมผลมีดังนี้
Mammal eats Mammal travels
เมื่อเอาชนะวิธีการประกาศในอินเตอร์เฟซที่คุณจะต้องให้ความสนใจกับกฎต่อไปนี้:
ในช่วงเวลาของการดำเนินงานของอินเตอร์เฟซ แต่ยังให้ความสนใจกับกฎบางอย่าง:
อินเตอร์เฟซที่สามารถสืบทอดอินเตอร์เฟซที่อื่นที่คล้ายกันมากขึ้นระหว่างการเรียนและการถ่ายทอดทางพันธุกรรม อินเตอร์เฟซมรดกขยายคำหลักย่อยอินเตอร์เฟซที่สืบทอดวิธีการอินเตอร์เฟซผู้ปกครอง
ฮอกกี้และฟุตบอลการเชื่อมต่ออินเตอร์เฟซต่อไปนี้จะได้รับการถ่ายทอดกีฬา:
// 文件名: Sports.java public interface Sports { public void setHomeTeam(String name); public void setVisitingTeam(String name); } // 文件名: Football.java public interface Football extends Sports { public void homeTeamScored(int points); public void visitingTeamScored(int points); public void endOfQuarter(int quarter); } // 文件名: Hockey.java public interface Hockey extends Sports { public void homeGoalScored(); public void visitingGoalScored(); public void endOfPeriod(int period); public void overtimePeriod(int ot); }
ฮอกกี้การเชื่อมต่อของตัวเองประกาศสี่วิธีการอินเตอร์เฟซที่สืบทอดสองวิธีจากกีฬาเพื่อที่จะตระหนักถึงความจำเป็นในการดำเนินการระดับฮอกกี้อินเตอร์เฟซที่หกวิธี
ในทำนองเดียวกันฟุตบอลอินเตอร์เฟซการใช้งานคลาสต้องการที่จะใช้ห้าวิธีการรวมทั้งสองจากอินเตอร์เฟซการกีฬา
ใน Java มรดกหลายชั้นไม่ได้เป็นกฎหมาย แต่อินเตอร์เฟซที่ช่วยให้มรดกหลาย
ในอินเตอร์เฟซของมรดกหลายขยายคำหลักเพียงครั้งเดียวในการเชื่อมต่อการติดตามรับมรดกต่อมา ดังต่อไปนี้:
public interface Hockey extends Sports, Event
ส่วนโปรแกรมข้างต้นจะถูกต้องตามกฎหมายที่กำหนดไว้อินเตอร์เฟซย่อยซึ่งแตกต่างจากชั้นเรียนที่อินเตอร์เฟซที่ช่วยให้มรดกหลายและกีฬาและกิจกรรมอาจกำหนดหรือสืบทอดวิธีการเดียวกัน
อินเตอร์เฟซที่ได้รับมรดกที่พบมากที่สุดไม่ได้มีวิธีการของอินเตอร์เฟซใด ๆ
โดยจะระบุอินเตอร์เฟซที่ไม่มีวิธีการอินเตอร์เฟซและคุณสมบัติ. มันเป็นเพียงการแสดงให้เห็นว่ามันเป็นประเภทเฉพาะของชั้นเรียนสำหรับรหัสอื่น ๆ เพื่อทดสอบได้รับอนุญาตให้ทำอะไรบางอย่าง
ระบุบทบาทของอินเตอร์เฟซ: ภาพที่เรียบง่ายของวัตถุนั้นคือการทำให้เครื่องหมาย (สร้างแสตมป์) หรือทำให้วัตถุมีสิทธิพิเศษบางอย่าง
ตัวอย่างเช่นแพคเกจ java.awt.event การเชื่อมต่ออินเตอร์เฟซ MouseListener มรดก java.util.EventListener มีการกำหนดไว้ดังต่อไปนี้:
package java.util; public interface EventListener {}
ไม่มีทางอินเตอร์เฟซที่เรียกว่าอินเตอร์เฟซที่เครื่องหมายไม่เป็น อินเตอร์เฟซที่เครื่องหมายส่วนใหญ่จะใช้สำหรับจุดประสงค์สอง
เป็นอินเตอร์เฟซ EventListener ซึ่งประกอบด้วยหลายสิบของการเชื่อมต่อขยาย Java API คุณสามารถใช้อินเตอร์เฟซเครื่องหมายเพื่อสร้างชุดของอินเตอร์เฟซอินเตอร์เฟซผู้ปกครอง ตัวอย่างเช่นเมื่อมีอินเตอร์เฟซที่สืบทอดอินเตอร์เฟซ EventListener, โปรแกรม Java Virtual Machine (JVM) ที่จะรู้ว่าอินเตอร์เฟซที่จะใช้สำหรับโปรแกรมของตัวแทนเหตุการณ์
สถานการณ์นี้เป็นอินเตอร์เฟซที่ติดแท็กวัตถุประสงค์เดิม, คลาสที่ใช้อินเตอร์เฟซที่เครื่องหมายไม่จำเป็นต้องกำหนดวิธีการอินเตอร์เฟซใด ๆ (เป็นอินเตอร์เฟซเครื่องหมายเป็นเพียงวิธีไม่มี) แต่ชั้นเรียนออกเป็นประเภทอินเตอร์เฟซที่ผ่าน polymorphism