API และไลบรารี
แนะนำใหม่| English | ความหมาย |
|---|---|
| library/ˈlaɪbrəri/ | ไลบรารี |
| API/ˌeɪ piː ˈaɪ/ | API |
การยืนบนไหล่คนอื่น
- คุณไม่ได้เขียนทุกอย่างตั้งแต่ต้น — Java มีโค้ดสำเร็จรูปจำนวนมาก
- Library คือกลุ่มของ classes ที่เขียนไว้ล่วงหน้าที่คุณสามารถใช้งาน
- Standard library ของ Java มี
String,Math,Scanner,ArrayListและอีกนับพันๆ อย่าง - การใช้ library code ที่ผ่านการทดสอบแล้วเร็วกว่าและปลอดภัยกว่าการสร้างใหม่
API บอกอะไรคุณ
- API (Application Program Interface) คือ รายการที่บันทึกไว้ ของสิ่งที่ class นั้นเสนอ
- มันบอกชื่อแต่ละ method, parameters ที่รับ, และสิ่งที่มัน คืนค่า
- คุณเขียนโปรแกรม ตาม API — ใช้ method ตามพฤติกรรมที่บันทึกไว้, ไม่ใช่โค้ดภายใน
- API คือสัญญา: "ให้ฉันอินพุตพวกนี้, ฉันจะให้เอาต์พุตนั้นมา"
Import class
- บาง class ต้องมี statement
importก่อนนำไปใช้ import java.util.Scanner;ทำให้Scannerพร้อมใช้งาน- Core classes เช่น
StringและMathอยู่ในjava.lang— import อัตโนมัติ - คำ import วางไว้ด้านบนของไฟล์, เหนือ class
ใช้งานได้โดยไม่ต้องรู้ข้างใน
- คุณสามารถเรียก
Math.sqrt(x)โดยไม่ต้องรู้ว่ามันคำนวณ square root อย่างไร - นี่คือ abstraction: API ซ่อน implementation ไว้หลัง interface ที่เรียบง่าย
- คุณแค่ต้องการ what (พฤติกรรมที่บันทึกไว้), ไม่ใช่ how
- Library ที่ดีช่วยให้คุณสร้างงานได้เร็วด้วยการมองโค้ดซับซ้อนเป็น black box
ใช้ไลบรารี หรือเขียนเอง?
จัดกลุ่มงานแต่ละรายการตามว่าไลบรารีมาตรฐานทำสิ่งนั้นอยู่แล้วหรือไม่
您应根据 API 的文档行为进行编程,而不是其内部代码。阅读方法接收什么和返回什么——您不需要(也不希望)了解其内部工作原理。记住大多数类需要一个import,但java.lang类(String, Math, System, Integer)是自动导入的,因此Scanner需要import java.util.Scanner;而Math则不需要。
การใช้ library Math:
- ไม่ต้อง import —
Mathอยู่ในjava.lang double r = Math.sqrt(16);→rคือ4.0, และคุณไม่เคยเห็น algorithm- API เพียงแค่สัญญา: "ให้ฉันตัวเลข, ฉันคืนค่า square root ของมันให้"
Library คือโค้ดสำเร็จรูปที่นำกลับมาใช้ซ้ำได้; API บันทึก methods ของแต่ละ class — ชื่อ, parameters, และค่าที่คืนมา — เพื่อให้คุณเขียนโปรแกรม ตาม พฤติกรรมที่บันทึกไว้ ส่วนใหญ่ class ต้องใช้ import (เช่น Scanner), แต่ class java.lang (String, Math) import อัตโนมัติ. API คือ abstraction: ใช้งานโดยไม่ต้องรู้ข้างใน
API อธิบายเมทოდของคลาสโดยการบอกคุณเกี่ยวกับ...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
คุณโปรแกรมตามชื่อ/พารามิเตอร์/ค่าที่คืนมาที่บันทึกไว้ ไม่ใช่โค้ดด้านใน
คลาสใดต้องใช้ statement import ก่อนใช้งาน?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
คลาสใน java.lang import อัตโนมัติ; Scanner (java.util) ต้องใช้ import
คุณต้องอ่านโค้ดด้านในของเมทอดไลบรารีก่อนจึงจะใช้ได้
Difficulty 1/5 · 100 coins + a small bonus on first completion today
คุณใช้งานผ่านพฤติกรรมที่บันทึกไว้ — นั่นคือ abstraction
ชุดของคลาสที่เขียนไว้ล่วงหน้าและนำกลับมาใช้ใหม่ได้เรียกว่า ___ (หนึ่งคำ)
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ไลบรารีรวมโค้ดที่นำกลับมาใช้ใหม่เข้าด้วยกัน
Math และ String ถูก import อัตโนมัติเพราะอยู่ใน java.lang
Difficulty 1/5 · 100 coins + a small bonus on first completion today
java.lang ถูก import เป็นค่าเริ่มต้นในทุกโปรแกรม Java