Latest web development tutorials
×

Java หลักสูตร

Java หลักสูตร Java แนะนำโดยย่อ Java การกำหนดค่าการพัฒนาสภาพแวดล้อม Java พื้นฐานไวยากรณ์ Java วัตถุและการเรียน Java ชนิดข้อมูลพื้นฐาน Java ประเภทตัวแปร Java การปรับเปลี่ยน Java ผู้ประกอบการ Java โครงสร้างห่วง Java สาขาโครงสร้าง Java Number หมวดหมู่ Java Character หมวดหมู่ Java String หมวดหมู่ Java StringBuffer Java แถว Java วันที่เวลา Java นิพจน์ปกติ Java ทาง Java Stream,File,IO Java Scanner หมวดหมู่ Java การจัดการข้อยกเว้น

Java เชิงวัตถุ

Java สืบทอด Java Override/Overload Java polymorphism Java ระดับนามธรรม Java บรรจุภัณฑ์ Java อินเตอร์เฟซ Java บรรจุภัณฑ์

Java การสอนที่ทันสมัย

Java โครงสร้างข้อมูล Java คอลเลกชันกรอบ Java ยาชื่อสามัญ Java การทำให้เป็นอันดับ Java เขียนโปรแกรมเครือข่าย Java ส่ง Email Java การเขียนโปรแกรมแบบมัลติเธรด Java Appletรากฐาน Java เอกสารความคิดเห็น Java ตัวอย่าง Java 8 คุณสมบัติใหม่ Java MySQL สัมพันธ์

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();
}

การดำเนินงานของอินเตอร์เฟซ

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

ใช้การดำเนินการระดับคำหลักที่ใช้อินเตอร์เฟซ ในการประกาศคลาสดำเนินคำหลักที่อยู่เบื้องหลังการประกาศคลาส

ใช้ไวยากรณ์อินเตอร์เฟซที่คุณสามารถใช้สูตรนี้

... implements 接口名称[, 其他接口, 其他接口..., ...] ...

ตัวอย่าง

/* 文件名 : 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