ณ จุดนี้ เราเกือบจะเสร็จสิ้นกับแอปนี้แล้ว และนี่ก็เป็นโมดูลหลักสูตรระยะยาวอีกโมดูลหนึ่ง แต่อีกครั้ง ด้วยแนวคิดใหม่ที่สำคัญมากมาย
และแน่นอนว่ามีโอกาสมากมายที่จะทำซ้ำแนวคิดที่เราได้เรียนรู้มาก่อน
ตอนนี้ส่วนที่ขาดหายไปสำหรับแอปนี้คือแผนภูมิ
และเพื่อสร้างแผนภูมินี้ ก่อนอื่น ฉันต้องการไปที่แบบจำลองค่าใช้จ่ายของฉัน และเพิ่มคลาสใหม่ ซึ่งเป็นแบบจำลองข้อมูลใหม่ลงในไฟล์นี้
และนั่นจะเป็นคลาสถังค่าใช้จ่าย
เนื่องจากในการสร้างแผนภูมินี้ เราต้องใช้หลายกลุ่ม หนึ่งกลุ่มสำหรับทุกหมวดหมู่ เพื่อให้เราสามารถสรุปค่าใช้จ่ายทั้งหมดที่อยู่ในหมวดหมู่เดียวและแสดงในแผนภูมิ
เพื่อสิ่งนั้น ฉันกำลังสร้างคลาสแยกต่างหากซึ่งจะเก็บข้อมูลที่สรุปไว้
และชั้นนี้ที่นี่ซึ่งกำหนดกลุ่มของค่าใช้จ่ายในตอนท้ายต้องการคุณสมบัติหลักสองประการ
มันต้องการคุณสมบัติประเภทซึ่งเป็นประเภทประเภท
ซึ่งใช้ประเภท enum ของเราเองที่นี่
และนอกจากนั้น ผมอยากให้มีรายการค่าใช้จ่ายด้วย เพราะถังดังกล่าวจะรวมค่าใช้จ่ายหลายรายการเข้าด้วยกัน
นั่นคือแนวคิดเบื้องหลังคลาสนี้
ดังนั้น แน่นอนว่าเราสามารถเพิ่มบัคเก็ตค่าใช้จ่ายคอนสตรัคเตอร์ของเราได้ โดยที่เราตั้งค่าหมวดหมู่นี้และค่าใช้จ่ายนี้
และทั้งสองอย่างนี้ควรจะต้องระบุด้วยเช่นกัน
ตอนนี้ นอกเหนือจากการตั้งค่าคุณสมบัติเหล่านั้นเพื่อจัดเก็บค่าใช้จ่ายเหล่านี้ทั้งหมดแล้ว ฉันยังต้องการเพิ่ม
getter ให้กับคลาสนี้ที่นี่ ซึ่งจะส่งคืนค่าสองเท่า
เป็นตัวเลขที่มีจุดทศนิยม และฉันจะตั้งชื่อค่าใช้จ่ายทั้งหมดนี้
และนี่เป็นเพียงยูทิลิตี้ getter คุณสามารถพูดได้ ซึ่งฉันกำลังเพิ่ม ซึ่งรวมค่าใช้จ่ายทั้งหมดที่เรามีที่นี่
เพื่อให้เราสามารถรับค่าใช้จ่ายทั้งหมดจากถังได้สะดวก
และโปรดทราบว่าเราจะมีหนึ่งถังต่อหมวดหมู่
ตอนนี้เพื่อสร้างตัวแปรบางตัว ฉันจะสร้างตัวแปรตัวช่วย ซึ่งบางตัวเริ่มต้นที่ศูนย์ และฉันต้องการคืนค่าตัวแปรบางตัวในตอนท้าย
แต่ในระหว่างขั้นตอนเหล่านี้ ฉันต้องการสรุปค่าใช้จ่ายทั้งหมด และสิ่งนี้สามารถทำได้ด้วย for loop
แม้ว่าฉันจะใช้ for loop เวอร์ชั่นใหม่ ซึ่งเป็นตัวแปรของ for loop ซึ่งเราไม่เคยเห็นมาก่อน
แทนที่จะสร้าง for วนซ้ำโดยที่เราสร้างตัวแปรตัวช่วย I และเราจะวนลูปต่อไปตราบเท่าที่ I มีขนาดเล็กกว่าความยาวของค่าใช้จ่าย
และเราเพิ่ม I ขึ้นหนึ่งหลังจากทุกๆ การวนซ้ำ แทนที่จะทำเช่นนั้น ซึ่งเราสามารถทำได้เช่นกัน ทำเพื่อให้ได้ค่าใช้จ่ายแต่ละรายการ
ฉันจะใช้การเปลี่ยนแปลงของสิ่งนั้น for loop ซึ่งเหมาะสำหรับการดูองค์ประกอบทั้งหมดในรายการ
คุณสามารถใช้ไวยากรณ์นี้โดยที่คุณสร้างตัวแปรตัวช่วยซึ่งสำหรับการวนซ้ำทุกครั้งถือเป็นที่สิ้นสุด เพราะมันจะถูกสร้างขึ้นใหม่หลังจากการวนซ้ำทุกครั้ง
และที่นี่ฉันจะสร้างค่าใช้จ่ายตัวแปรผู้ช่วย จากนั้นเราสามารถใช้คำหลักพิเศษเพื่อบอก
DART ว่าเราต้องการดูรายการทั้งหมดในรายการนี้
ดังนั้นในค่าใช้จ่าย
และในการทำซ้ำทุกครั้ง รายการใหม่จะถูกเลือกและจะถูกจัดเก็บไว้ในตัวแปรสุดท้ายที่สร้างขึ้นใหม่ซึ่งเรียกว่าค่าใช้จ่าย
จากนั้นจึงเข้าไปข้างในตัวลูปนั้น
ดังนั้นระหว่างวงเล็บปีกกาเหล่านี้ เราสามารถเข้าถึงค่าใช้จ่ายเดียวนั้นได้
และนี่ก็เป็นอีกทางเลือกหนึ่งที่สมบูรณ์แบบสำหรับการดูรายการต่างๆ ในรายการ
เนื่องจากสั้นกว่าเล็กน้อยและอาจเข้าใจได้ง่ายกว่าการจัดการตัวแปรตัวช่วยด้วยตนเอง
ฉันและใช้สิ่งนั้นเป็นดัชนีซึ่งแน่นอนว่าคุณสามารถทำได้เช่นกัน
แต่ที่นี่เราสามารถวนซ้ำค่าใช้จ่ายทั้งหมดในรายการค่าใช้จ่ายของเราเช่นนี้
จากนั้นเพิ่มยอดค่าใช้จ่ายลงในผลรวมโดยตั้งค่าผลรวมเท่ากับผลรวมบวกจำนวนจุดค่าใช้จ่าย
และนี่สามารถย่อและเขียนแบบนี้แทนได้
ซึ่งเทียบเท่ากับการตั้งค่าแบบนี้
นี่สั้นกว่าและบอก start ว่าคุณต้องการตั้งค่าผลรวมเท่ากับผลรวมบวกจำนวนค่าใช้จ่าย
และนี่คือวิธีที่เราจะกำหนด getter ดังกล่าวได้
ซึ่งจะสรุปค่าใช้จ่ายทั้งหมดในรายการค่าใช้จ่ายนี้และส่งกลับผลรวมทั้งหมดเป็นตัวเลข
และเราต้องการตัวช่วยนี้สำหรับแผนภูมิ เพราะในแผนภูมิ แน่นอนว่าแท่งต่างๆ สำหรับกลุ่มค่าใช้จ่ายต่างๆ
ดังนั้นสำหรับหมวดหมู่ต่างๆ ควรแสดงให้สัมพันธ์กัน
และแน่นอนว่า เราจำเป็นต้องทราบค่าใช้จ่ายทั้งหมดของทุกบัคเก็ต เพื่อที่เราจะสามารถปรับความสูงของแท่งกราฟได้