การนำไปใช้งาน
เปลี่ยนการออกแบบให้เป็นโค้ดที่ทำงานได้: กำหนดคลาสฐาน นำรูปทรงรูปธรรมไปใช้งาน และพิมพ์ผลลัพธ์จากรายการที่มีหลายชนิด
การนำไปใช้งาน เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
สรุปแผน
เราจะเขียนคลาสฐาน Shape พร้อม area() และ perimeter() จากนั้นเพิ่ม Circle และ Rectangle ควรตั้งชื่อให้สั้นและเขียนคณิตศาสตร์ให้อ่านง่าย และเลือกใช้เมธอดช่วยขนาดเล็กสำหรับการพิมพ์
โค้ด: คลาสฐานและ Circle
คลาสฐานกำหนดส่วนติดต่อและเมธอดช่วย info() ขนาดเล็ก Circle คำนวณทางคณิตศาสตร์และใช้ toString() เพื่อแสดงผลอย่างชัดเจน
public class Main {
// Base class with a tiny print helper
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() {
return String.format("area=%.2f, per=%.2f", area(), perimeter());
}
}
static class Circle extends Shape {
double radius;
Circle(double r) {
// simple guard to avoid negative sizes for beginners
radius = (r < 0) ? 0 : r;
}
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
public static void main(String[] args) {
Shape s = new Circle(2.5);
System.out.println(s); // prints Circle area/perimeter
}
}
ตัวสร้างและการป้องกันค่า
ตัวสร้างใช้กำหนดค่าฟิลด์ สำหรับผู้เริ่มต้น ให้ป้องกันอินพุตที่เป็น negative ด้วยการจำกัดค่าให้เป็นศูนย์ แอปจริงจะใช้การตรวจสอบหรือข้อยกเว้น แต่ในที่นี้เราจะทำให้เรียบง่าย
โค้ด: เพิ่ม Rectangle
Rectangle เข้าร่วมลำดับชั้นและใช้ส่วนติดต่อเดียวกัน สังเกตว่ารูปทรงทั้งสองชนิดสามารถพิมพ์ด้วยโค้ดเดียวกันได้ เพราะคลาสฐานกำหนดสัญญาไว้
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() { return String.format("area=%.2f, per=%.2f", area(), perimeter()); }
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = (r < 0) ? 0 : r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) {
this.w = (w < 0) ? 0 : w;
this.h = (h < 0) ? 0 : h;
}
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
public String toString() { return "Rectangle " + info(); }
}
public static void main(String[] args) {
Shape a = new Circle(3.0);
Shape b = new Rectangle(4.0, 2.0);
System.out.println(a);
System.out.println(b);
}
}
รายการและการพิมพ์
รายการของ Shape ช่วยให้เราผสม Circle และ Rectangle ได้ ลูปแบบง่ายสามารถพิมพ์แต่ละรายการได้ สำหรับผลลัพธ์บนอุปกรณ์เคลื่อนที่ ให้แสดงรูปทรงหนึ่งรายการต่อบรรทัดและจัดรูปแบบตัวเลขเป็นทศนิยมสองตำแหน่ง
โค้ด: รายงานขนาดเล็ก
รายงาน: ลูปขนาดเล็กพิมพ์ชนิดและข้อมูลสรุปของรูปทรงแต่ละรายการ พหุรูปแบบช่วยให้ลูปสะอาด ขณะที่รูปทรงแต่ละชนิดจัดเตรียมการคำนวณของตนเอง
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String label() { return getClass().getSimpleName(); }
String info() { return String.format("area=%.2f, per=%.2f", area(), perimeter()); }
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = (r < 0) ? 0 : r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) { this.w = (w < 0) ? 0 : w; this.h = (h < 0) ? 0 : h; }
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
}
public static void main(String[] args) {
Shape[] shapes = { new Circle(1.2), new Rectangle(2.0, 3.0), new Circle(0.5) };
for (int i = 0; i < shapes.length; i = i + 1) {
Shape s = shapes[i];
System.out.println(s.label() + " -> " + s.info());
}
}
}
ตรวจสอบการนำไปใช้
ตรวจความเข้าใจ: รูปทรงรูปธรรมแต่ละชนิดในลำดับชั้นนี้ต้องมีสิ่งใด
สรุปทบทวน
สรุปทบทวน: เราเขียน Shape, Circle และ Rectangle เพิ่มการป้องกันค่าแบบง่าย และพิมพ์รายงานขนาดเล็กจากรายการที่มีรูปทรงผสมกัน บทเรียนถัดไป: พฤติกรรมแบบพหุรูปแบบ เช่น การเรียงลำดับตาม area
คำถามที่พบบ่อย
บทเรียน “การนำไปใช้งาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การนำไปใช้งาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนำไปใช้งาน”
เปลี่ยนการออกแบบให้เป็นโค้ดที่ทำงานได้: กำหนดคลาสฐาน นำรูปทรงรูปธรรมไปใช้งาน และพิมพ์ผลลัพธ์จากรายการที่มีหลายชนิด คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน
บทเรียน “การนำไปใช้งาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การออกแบบ
- การนำไปใช้งาน
- พฤติกรรมแบบพหุรูปแบบ