บทช่วยสอน Java อินเตอร์เฟซ ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ อินเตอร์เฟซที่ประกาศ,การดำเนินงานของอินเตอร์เฟซ,อินเตอร์เฟซการรับมรดก,อินเตอร์เฟซมรดกหลาย,อินเตอร์เฟซมาร์กเกอร์,

Java อินเตอร์เฟซ

อินเตอร์เฟซ (อังกฤษ: Interface) ในการเขียนโปรแกรมภาษา Java เป็นประเภทนามธรรมคือชุดของวิธีการนามธรรมอินเตอร์เฟซที่มักจะติดต่อไปยังคำสั่ง ชั้นโดยสืบทอดโหมดอินเตอร์เฟซจึงจะได้รับมรดกอินเตอร์เฟซที่ใช้วิธีการที่เป็นนามธรรม

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

เว้นแต่การดำเนินงานของระดับอินเตอร์เฟซเป็นนามธรรมหรืออื่น ๆ เพื่อกำหนดอินเตอร์เฟซชั้นเรียนวิธีการทั้งหมด

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

อินเตอร์เฟซคล้ายกับจุดชั้นเรียน:

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

อินเตอร์เฟซที่ประกาศ

ไวยากรณ์ประกาศอินเตอร์เฟซจะเป็นดังนี้:

[可见度] 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

Java อินเตอร์เฟซ
10/30