0Pricing
Dart Academy · บทเรียน

คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์

กำหนดค่าเริ่มต้นให้ฟิลด์ขณะสร้างออบเจ็กต์

คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์ เป็นบทเรียน Dart Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Dart Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

หน้าที่ของตัวสร้าง

ตัวสร้างคือเมธอดพิเศษที่สร้างออบเจ็กต์ใหม่และกำหนดสถานะเริ่มต้น เมื่อคุณเขียนชื่อคลาส 🏗️

ตัวสร้างเริ่มต้น

หากคุณไม่เขียนตัวสร้างเลย Dart จะมอบตัวสร้างเริ่มต้นที่ไม่รับอาร์กิวเมนต์ให้โดยอัตโนมัติ และสร้างออบเจ็กต์เปล่า

class Dog {}
var d = Dog(); // uses the default constructor

ตัวสร้างที่รับพารามิเตอร์

เพิ่มพารามิเตอร์เพื่อให้ผู้เรียกส่งค่าเข้ามาตั้งแต่ต้นได้ ตัวสร้างที่รับพารามิเตอร์จะกำหนดค่าเหล่านั้นให้กับฟิลด์ของออบเจ็กต์

class Dog {
  String name;
  Dog(this.name);
}

คีย์เวิร์ด this ในพารามิเตอร์

รูปแบบย่อ this.name ในพารามิเตอร์หมายถึงการนำอาร์กิวเมนต์ไปเก็บไว้ในฟิลด์ที่มีชื่อเดียวกันโดยตรง ช่วยลดการเขียนลงหนึ่งบรรทัด

class Dog {
  String name;
  Dog(this.name);
}

เมื่อไม่ใช้ทางลัด this

คุณสามารถกำหนดค่าด้วยตนเองภายในส่วนเนื้อหาได้เช่นกัน ในกรณีนี้ this ช่วยแยกฟิลด์ออกจากพารามิเตอร์เมื่อทั้งสองมีชื่อซ้ำกัน

class Dog {
  String name;
  Dog(String name) {
    this.name = name;
  }
}

การสร้างออบเจ็กต์

เรียกคลาสเหมือนเรียกฟังก์ชันและส่งอาร์กิวเมนต์ตามลำดับ Dart จะเรียกใช้ตัวสร้างและส่งคืนอินสแตนซ์ที่พร้อมใช้งานให้คุณ

var d = Dog("Rex");
print(d.name); // Rex

พารามิเตอร์หลายตัวตามลำดับ

เรียงพารามิเตอร์จากซ้ายไปขวา ผู้เรียกต้องส่งพารามิเตอร์ตามลำดับแบบระบุตำแหน่งเดียวกัน เหมาะสำหรับฟิลด์ที่ชัดเจนสองหรือสามรายการ

class Point {
  int x, y;
  Point(this.x, this.y);
}

การเพิ่มตรรกะในส่วนเนื้อหา

ส่วนเนื้อหาของตัวสร้างสามารถตั้งค่าเพิ่มเติมหลังจากกำหนดฟิลด์แล้ว เช่น ตรวจสอบค่าหรือบันทึกข้อมูล ควรทำให้ส่วนเนื้อหาสั้นและมีจุดประสงค์ชัดเจน

class Box {
  int size;
  Box(this.size) {
    print("Box made: $size");
  }
}

ตัวสร้างไม่มีชนิดคืนค่า

คุณไม่ต้องเขียนชนิดคืนค่าและไม่ต้องคืนค่าใด ๆ ตัวสร้างจะส่งคืนออบเจ็กต์ใหม่เสมอ ดังนั้นใช้เพียงชื่อก็เพียงพอ

class Cat {
  Cat(); // no void, no return
}

ตัวสร้างไม่มีชื่อหนึ่งตัวต่อคลาส

คลาสหนึ่งคลาสมีตัวสร้างไม่มีชื่อได้เพียงตัวเดียว หากต้องการวิธีสร้างเพิ่มเติม คุณจะได้ใช้ตัวสร้างที่มีชื่อในหัวข้อถัดไป

ค่าเริ่มต้นจะหายไปเมื่อเพิ่มตัวสร้าง

ทันทีที่คุณประกาศตัวสร้างใด ๆ Dart จะหยุดสร้างตัวสร้างที่ไม่รับอาร์กิวเมนต์ให้โดยอัตโนมัติ หากยังต้องการการสร้างแบบว่างเปล่า คุณต้องเพิ่มตัวสร้างนั้นเอง

class User {
  String name;
  User(this.name);
  User.empty() : name = "";
}

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ตรวจสอบความเข้าใจเกี่ยวกับตัวสร้างเริ่มต้นและตัวสร้างที่รับพารามิเตอร์

ทบทวน: การสร้างออบเจ็กต์

คุณได้รู้จักตัวสร้าง ได้แก่ ตัวสร้างเริ่มต้นที่มีให้ ตัวสร้างที่รับพารามิเตอร์ ทางลัด this และการที่การประกาศตัวสร้างจะลบตัวสร้างเริ่มต้น หัวข้อถัดไปคือตัวสร้างที่มีชื่อ ✨

คำถามที่พบบ่อย

บทเรียน “คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Dart Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Dart Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์”

กำหนดค่าเริ่มต้นให้ฟิลด์ขณะสร้างออบเจ็กต์ คุณปฏิบัติ Dart Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Dart Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Dart Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Dart Academy นี้ได้ไหม

ได้ บทเรียน Dart Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คอนสตรักเตอร์ค่าเริ่มต้นและแบบรับพารามิเตอร์
  2. คอนสตรักเตอร์แบบมีชื่อเพื่อสื่อเจตนาอย่างชัดเจน
  3. ลิสต์กำหนดค่าเริ่มต้นและการส่งต่อ
  4. คอนสตรักเตอร์แบบ factory และ const
← กลับไปที่ Dart Academy