ฉันสามารถเป็นนักพัฒนาซอฟต์แวร์ได้หรือไม่
หลักการทางทะเลระบุว่า: หากคุณพบชายหรือหญิงที่เหมาะสมทางร่างกาย คุณสามารถทำให้เขาหรือเธอเป็นเครื่องบินรบที่มีเอกลักษณ์เฉพาะได้ โดยต้องได้รับการฝึกฝนและการศึกษาที่เหมาะสม การเขียนโปรแกรมเป็นเพียงทักษะเดียวกับการเล่นกีตาร์ ว่ายน้ำ หรือขี่จักรยาน คนเราไม่ได้เกิดมาเป็นไบค์เกอร์ เมื่อฉันเห็นเพื่อนที่ทำงานหนักกว่าฉันสองเท่าและได้เงินน้อยกว่าฉันถึงสี่เท่า ฉันเริ่มบทสนทนาต่อไปนี้: — คุณอยากทำงานเป็นโปรแกรมเมอร์ไหม คุณฉลาดจริงๆ บางทีคุณอาจไม่ได้อยู่ในสถานที่ของคุณ?ทำไมต้องพัฒนาซอฟต์แวร์?
ก่อนที่จะเริ่มสอนคนเขียนโปรแกรม เราควรค้นหาให้ดีก่อนว่ามันให้อะไรแก่เขาหรือเธอ1 งานที่เรียบง่ายและน่าสนใจ
วิศวกรซอฟต์แวร์เป็นงานที่ง่ายและน่าสนใจ มีพื้นที่ที่ยอดเยี่ยมสำหรับความคิดสร้างสรรค์ ฉันรักมัน. ตอนแรกฉันคลั่งไคล้มากเมื่อคิดว่าฉันทำในสิ่งที่ชอบและได้ค่าตอบแทน แต่แล้วฉันก็คุ้นเคยกับมันในที่สุด2 มันจ่ายดี.
ฉันแค่สนุกกับการดูเพื่อนๆ ซื้อรถและบ้านให้ตัวเองในเวลา 5 ปี3 ชั่วโมงที่ยืดหยุ่น
ตารางการทำงานที่เข้มงวดเป็นสิ่งที่น่ารังเกียจ ใครเคยรถติดช่วงชั่วโมงเร่งด่วนหรือโดนปรับเพราะมาสาย 5 นาทีรับรองได้ แล้วการมาถึงที่ทำงาน 11 โมงเลิก 5 โมงเย็นล่ะ? สำหรับโปรแกรมเมอร์ส่วนใหญ่ มันเป็นกำหนดการปกติ เพียงแค่ทำงานของคุณและไม่มีใครจะพูดข้ามคำ คุณอาจทำงานที่บ้านในบริษัทส่วนใหญ่ คุณสามารถทำข้อตกลงที่สมเหตุสมผลกับนายจ้างของคุณได้เสมอ4 การเติบโตอย่างมืออาชีพ
ในบริษัทส่วนใหญ่ คุณจำเป็นต้องไต่ระดับอาชีพเพื่อให้ได้ค่าตอบแทนที่ดี นักพัฒนาซอฟต์แวร์ต้องเป็นนักพัฒนาซอฟต์แวร์เท่านั้น คุณไม่จำเป็นต้องมีคุณสมบัติอีกครั้งจากนักพัฒนาเป็นผู้จัดการหรือพยายามที่จะเป็นผู้นำ สิ่งที่คุณต้องทำคือเติบโตอย่างมืออาชีพ นักพัฒนาที่มีประสบการณ์ 5 ถึง 10 ปีจะได้รับค่าตอบแทน5 ความคล่องตัวระหว่างประเทศสูง
มีสามอาชีพที่ได้รับค่าตอบแทนสูงที่สุดในโลก: ทนายความ แพทย์ และนักพัฒนาซอฟต์แวร์ เป็นความท้าทายที่แท้จริงสำหรับนักกฎหมายที่ทำงานในต่างประเทศ: กฎหมายต่างๆ คดีความ ฯลฯ แพทย์ต้องเรียนรู้ภาษา มาตรฐานทางการแพทย์อื่นๆ และสอบผ่าน นักพัฒนาไม่ต้องเรียนรู้อะไรเพิ่มเติม ภาษาเดียวกัน. มาตรฐานเดียวกัน. ส่วนใหญ่แล้วแม้แต่ลูกค้าก็เหมือนกันทำไมต้องจาวา?
ปัจจัยทั้งหมดสามประการต่อไปนี้ทำให้ฉันฝึกคนอีกครั้งสำหรับนักพัฒนา Java1. Java — เป็นหนึ่งในภาษาที่ง่ายที่สุดสำหรับการเรียนรู้
คนที่เพิ่งเรียนจบสามารถเรียนรู้ได้ภายใน 3 ถึง 6 เดือน ขึ้นอยู่กับความรู้พื้นฐานและจำนวนชั่วโมงที่เรียน2. ตลาดแรงงานมีความต้องการสูง
คุณสามารถรับงานได้โดยไม่ต้องมีประสบการณ์มาก่อน บริษัทจ้างนักศึกษาฝึกงานด้วยความกระตือรือร้นและให้ความรู้แก่พวกเขา3. เงินเดือนสูงสุดในสายงาน
สูงที่สุดแห่งหนึ่ง นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับนักพัฒนารุ่นเยาว์การเขียนโปรแกรมเป็นทักษะ
คุณไม่สามารถอ่านหนังสือและเป็นโปรแกรมเมอร์คอมพิวเตอร์ได้ คุณต้องฝึกฝนอย่างน้อย 500 ชั่วโมง เช่นเดียวกับมวย คุณไม่สามารถดูการแข่งขันและกลายเป็นมืออาชีพได้ คุณต้องฝึกฝนเป็นเวลาหลายปี (นั่นคือสาเหตุที่ CodeGym มีงานเชิงปฏิบัติมากมาย) ข้อเสนอทั้งหมดของการสอนวิธีเขียนโปรแกรมให้คุณใน 10 ชั่วโมงจะเหมือนกันกับข้อเสนอสอนคุณลงกล่องใน 10 ชั่วโมง แล้วโยนคุณขึ้นเวทีมวย! อย่าทำอย่างนั้น บางครั้งเมื่อมีมือใหม่ถามในฟอรัมว่าจะเป็นนักพัฒนาซอฟต์แวร์ได้อย่างไร เขาจะได้รับคำแนะนำให้ประดิษฐ์งานสำหรับตัวเองและลงมือทำ นั่นจะไม่ทำงานสิ่งนี้คือบุคคลไม่สามารถทำงานนอกเหนือความรู้ของเขาได้ คุณรู้บางอย่างหรือคุณไม่รู้ เฉพาะผู้ที่รอบรู้ในเรื่องนั้นๆ เท่านั้นที่สามารถสร้างชุดงานต่อเนื่องสำหรับคุณ ซึ่งแต่ละงานจะสอนสิ่งใหม่ๆ ให้คุณ และใช้เวลาหลายสัปดาห์ในการแก้ปัญหา นั่นคือสิ่งที่ฉันทำใน CodeGymวิธีการสอนนวัตกรรมใหม่
การศึกษาของ CodeGym นั้นแตกต่างไปจากการศึกษาระดับวิทยาลัย คุณจะสังเกตเห็นได้ในไม่ช้า มันมีประสิทธิภาพมากขึ้น การเรียนในวิทยาลัยของคุณน่าจะเป็นแบบนี้: การบรรยายยาวๆ และการฝึกฝนเพื่อตอกย้ำสิ่งที่คุณได้เรียนรู้ ตามแนวทางนี้ คุณจะพัฒนาความรู้ของคุณ ไม่ใช่ทักษะ พูดตามตรง ทักษะที่คุณได้รับด้วยวิธีนี้แทบไม่มีค่าอะไรเลย ฉันมีแนวทางอื่น ฉันเชื่อว่าคนๆ หนึ่งควรถามคำถามก่อน จากนั้นจึงค่อยได้รับคำตอบจากคำถามนั้น คำตอบก่อนคำถามไม่มีค่า การบรรยายของฉันคือคำตอบสำหรับคำถามของคุณ ก่อนอื่น ฉันจะให้คุณทำงานจริงที่ยากจะแก้ไขด้วยความรู้ปัจจุบันของคุณ งานเหล่านี้ทำให้เกิดคำถามและคุณจะได้รับคำตอบที่เป็นความรู้และการบรรยายของฉัน ฉันนำเสนอความรู้ใหม่ให้คุณในสามขั้นตอน:-
บทนำ (ทฤษฎีขั้นต่ำและงานปฏิบัติเล็กน้อย)
-
บล็อกความรู้หลัก (คุณควรเข้าใจหัวข้อนี้อย่างถ่องแท้)
-
รายละเอียดและความแตกต่าง (ฉันเติมช่องว่างที่นี่)
ระดับ 5
1 Elly พูดถึงชั้นเรียน
- เฮ้ อามีโก้! - สวัสดี เอลลี่! - วันนี้ฉันต้องการอธิบายว่าชั้นเรียนคืออะไร - คำอธิบาย # 1ฉันจะเริ่มต้นด้วยการเปรียบเทียบ ทุกสิ่งในจักรวาลของเราประกอบด้วยอะตอม พวกมันสามารถมีได้หลายประเภท: ไฮโดรเจน ออกซิเจน เหล็ก ยูเรเนียม ... การรวมอะตอมทำให้เกิดสิ่งต่าง ๆ หรือวัตถุต่าง ๆ - เช่นเดียวกับจักรวาลของ Java โปรแกรมที่นี่ประกอบด้วยอ็อบเจกต์ประเภทต่างๆ (โดยที่คลาสเป็นประเภท): Integer, String, File, Object, …การรวมอ็อบเจกต์ทำให้สามารถสร้างเว็บเซอร์วิสหรือโปรแกรมต่างๆ ได้ - อะตอมที่แตกต่างกันมีโครงสร้างภายในที่แตกต่างกัน ประกอบด้วยอิเล็กตรอน โปรตอน และนิวตรอนจำนวนหนึ่ง - คลาสต่างๆ (ประเภทออบเจ็กต์ใน Java) มีโครงสร้างภายในที่แตกต่างกันด้วย ประกอบด้วยตัวแปรและวิธีการต่างๆ - ใช่ ฉันมีความคิดทั่วไปเกี่ยวกับโครงสร้างอะตอม ฉันเป็นหุ่นยนต์ใช่ไหม - มาดูโปรแกรมในภาพรวมกัน: วัตถุต่างๆ เป็นเหมือนหน่วยการสร้างที่ประกอบกันเป็นโปรแกรม คลาสคือประเภทของบล็อกเหล่านั้น บล็อกประเภทต่างๆ เป็นวัตถุของคลาสต่างๆ - ฉันเข้าใจแล้ว - คำอธิบาย # 2 เราสร้างคลาสใหม่เมื่อเราต้องการวัตถุประเภทใหม่ ภายในคลาสนี้ เราจะอธิบายลักษณะการทำงานที่ต้องการของอ็อบเจกต์ - ฉันเข้าใจบางอย่าง แต่ฉันไม่แน่ใจในเรื่องนี้ - เมื่อพิจารณาจากโครงสร้างภายในคลาสประกอบด้วยเมธอดคลาสที่ทำบางสิ่งและตัวแปรคลาสที่เมธอดเก็บข้อมูลที่ใช้ร่วมกัน - พูดง่ายๆ คลาสคือชุดของเมธอด? - โดยเฉพาะอย่างยิ่งคลาสคือกลุ่มของเมธอดที่ทำงานร่วมกันและตัวแปรซึ่งเมธอดเก็บค่าต่างๆ เพื่อแบ่งปัน - ใช่. ในการสร้างคลาสใหม่ เราต้องเขียนเมธอดเหล่านี้ … - ใช่ เรายังจำเป็นต้องตัดสินใจว่าจะใช้ตัวแปรใดร่วมกันโดยเมธอดต่างๆ จากนั้นนำตัวแปรจากเมธอดหนึ่งไปยังคลาส: เปลี่ยนตัวแปรเมธอดเป็นตัวแปรคลาส - คลาสถูกสร้างขึ้นตามรูปแบบต่อไปนี้: 1 โปรแกรมเมอร์ตัดสินใจว่าต้องการอ็อบเจกต์อะไรอีกบ้าง 2 โปรแกรมเมอร์แบ่งวัตถุเหล่านี้ออกเป็นประเภทต่างๆ ขึ้นอยู่กับสิ่งที่พวกเขาทำ 3 โปรแกรมเมอร์เขียนคลาสแยกต่างหากสำหรับแต่ละประเภท 4 ในชั้นเรียน เขาประกาศวิธีการและตัวแปรที่จำเป็น 5ต้องเขียนคำสั่งในแต่ละเมธอดเพื่อให้เมธอดทำในสิ่งที่โปรแกรมเมอร์ต้องการให้ทำ 6 ชั้นเรียนพร้อมแล้ว ตอนนี้คุณสามารถสร้างวัตถุได้แล้ว - สุดยอด! เป็นโครงการที่น่าสนใจ ฉันจะจำมันไว้ - คุณต้องท่องจำ มันจะมีประโยชน์ แนวทางการเขียนโปรแกรมซึ่งแบ่งโปรแกรมออกเป็นอ็อบเจกต์ เรียกว่า โปรแกรมเชิงวัตถุ ( OOP ) - Java เป็นตัวอย่างคลาสสิกของแนวทาง OOP เนื่องจากใน Java ทุกอย่างเป็นวัตถุ - การเรียนรู้ Java ประกอบด้วยสองภารกิจหลัก: การเรียนรู้ที่จะเขียนชั้นเรียนของคุณเองและการเรียนรู้ที่จะใช้ชั้นเรียนของผู้อื่น. วันนี้เราเริ่มต้นด้วยสิ่งที่ง่ายที่สุด คุณจะได้เรียนรู้การเขียนคลาสง่ายๆ และแน่นอน การสร้างอ็อบเจกต์ วัตถุมักถูกเรียกว่าอินสแตนซ์ของคลาส เหล่านี้เป็นคำพ้องความหมาย ทั้งสองวิธีถูกต้อง - เข้าใจแล้ว. - สรุปได้ว่าคลาสคือโปรแกรมขนาดเล็ก: ชุดของข้อมูลและฟังก์ชันที่ทำบางอย่างกับข้อมูลนี้ คุณสมบัติที่สำคัญของคลาสคือความสามารถในการสร้างอินสแตนซ์ของคลาสเหล่านี้ (วัตถุ) - ในการสร้าง class object คุณต้องเขียนโค้ด«new class_name()» . - คลาสอ็อบเจกต์มีคุณสมบัติที่น่าสนใจสองประการ: - ประการแรก ออบเจกต์แต่ละคลาสเก็บสำเนาของตัวแปรคลาสของตนเองดังนั้น หากมีการประกาศตัวแปร x, y ในคลาสและสร้างออบเจกต์ 10 รายการในคลาสนี้ แต่ละออบเจ็กต์จะมีตัวแปรของตัวเอง การเปลี่ยนตัวแปรของวัตถุไม่มีผลกับตัวแปรของวัตถุอื่น - ประการที่สอง เมื่อวัตถุใหม่ถูกสร้างขึ้น พารามิเตอร์ต่างๆ สามารถส่งผ่านไปยังวัตถุนั้นได้ สิ่งเหล่านี้เรียกว่า «ค่าเริ่มต้น» มันเกือบจะเหมือนกับการตั้งชื่อเมื่อแรกเกิด ไม่สามารถสร้างออบเจกต์จำนวนมากโดยไม่ผ่านพารามิเตอร์ดังกล่าว - ฉันเข้าใจนิดหน่อย. และคุณพูดอะไรเกี่ยวกับตัวแปรคลาส? - ทุกวัตถุมีสำเนาของข้อมูล (ตัวแปรคลาส)2 ริชา พูดถึงแพ็คเกจ
- เฮ้ อามีโก้! ตอนนี้ฉันบอกคุณเกี่ยวกับแพ็คเกจ - ไฟล์ในคอมพิวเตอร์ถูกจัดกลุ่มเป็นโฟลเดอร์ คลาสใน Java (แต่ละคลาสอยู่ในไฟล์แยกต่างหาก) จะถูกจัดกลุ่มตามแพ็คเกจที่เป็นโฟลเดอร์ในแผ่นดิสก์ นี่ไม่ใช่เรื่องใหม่ แต่มีสองข้อสังเกต - อย่างแรก«ชื่อคลาสเต็มที่ไม่ซ้ำกัน» คือ «ชื่อแพ็คเกจ» + «ชื่อคลาส » ตัวอย่าง: - ชื่อเต็มของคลาสจะไม่ซ้ำกันเสมอ! - มันยากมากที่จะเขียนชื่อยาวๆ เช่นjava.util.ArrayListทุกครั้ง ดังนั้นในรหัสของคุณ คุณสามารถใช้ชื่อย่อของคลาสอื่นได้ แต่เพื่อสิ่งนั้นคุณต้องใช้เวทมนตร์ - เวทมนตร์อะไร? - คุณสามารถใช้คำสั่ง«import java.util.ArrayList;» - ในการเริ่มต้นคลาส ทันทีที่ประกาศแพ็กเกจ คุณต้องระบุชื่อเต็มของ คลาส ArrayListที่ใช้ในโค้ดของคุณ สมมติว่าคุณใช้คลาส java.util.ArrayList, sun.generic.ArrayList และ com.oracle.ArrayList ในโค้ดของคุณ คุณสามารถระบุหนึ่งในนั้นในการนำเข้า (เช่น sun.generic.ArrayList;) และใช้ชื่อย่อ มันเกี่ยวกับชั้นเรียนเดียวเท่านั้น - ทำไมสิ่งนี้จึงซับซ้อน สามารถมีชั้นเรียนที่มีชื่อเหมือนกันได้หรือไม่? - ใช่ ในแพ็คเกจที่แตกต่างกันสามารถมีคลาสที่มีชื่อเดียวกันได้ แต่เราไม่สามารถนำเข้าสองคลาสที่มีชื่อเดียวกันกับคลาสของเราได้ดังนั้นเราจึงต้องใช้ชื่อเต็มกับหนึ่งในนั้น - นี่คือการเปรียบเทียบอื่น คุณมีบิลอยู่ในทีม และไม่มีปัญหาในการสื่อสาร เพราะทุกคนรู้ว่าเป็นใคร แต่ถ้ามีตั๋วเงินสามใบ คุณก็ต้องใช้ชื่อเต็มไม่ซ้ำกันเพื่อแยกความแตกต่างระหว่างตั๋วเงินทั้งสอง - ประการที่สองเป็นการ ดีกว่าที่จะใส่คลาสลงใน แพ็คเกจและไม่อยู่ในโฟลเดอร์รูท src ไม่มีปัญหาเมื่อมีชั้นเรียนน้อย แต่จะสับสนได้ง่ายเมื่อมีจำนวนมาก ดังนั้นควรสร้างคลาสในแพ็คเกจเท่านั้น กฎใน Java คือการตั้งชื่อคลาสและแพ็คเกจที่อธิบายตัวเองได้ หลายบริษัทสร้างไลบรารี (ชุดคลาส) และตั้งชื่อชุดของคลาสเหล่านี้ตามชื่อบริษัท/เว็บไซต์เพื่อหลีกเลี่ยงความสับสน:3 Kim แสดงวิดีโอสอน
- เฮ้ อามีโก้! ต่อไปนี้คือวิดีโอบทช่วยสอนสองสามรายการ วิธีสร้างคลาสและแพ็คเกจ:4 Elly การสร้างวัตถุ การอ้างอิงวัตถุ
- ดังนั้น เราได้เรียนรู้ชั้นเรียนครั้งที่แล้ว วันนี้ฉันอยากจะบอกคุณถึงวิธีการสร้างวัตถุ มันง่ายมาก: เขียนคำหลักใหม่และชื่อคลาสสำหรับวัตถุที่เราต้องการสร้าง: - แต่ฉันเคยได้ยินมาก่อน - ฉันรู้ แต่โปรดฟัง - เมื่อมีการสร้างวัตถุใหม่ พารามิเตอร์ต่างๆ สามารถส่งผ่านในวงเล็บปีกกาได้ ฉันจะอธิบายในภายหลังในวันนี้ ลองพิจารณาคลาส Cat: - gettersและsetters เหล่านี้คืออะไร ? - ตัวแปรที่ไม่สามารถเข้าถึงได้จากคลาสอื่นถือเป็นเรื่องปกติใน Java โดยปกติแล้วตัวแปรที่ประกาศภายในคลาสจะมีตัวแก้ไขเป็นprivate - ในการให้สิทธิ์เข้าถึงตัวแปรส่วนตัว คุณควรสร้างสองวิธี: รับและตั้งค่า . เป้าหมายของเมธอด get คือการคืนค่าปัจจุบันของตัวแปรให้กับผู้ที่เรียกใช้ เป้าหมายของชุดวิธีการคือการตั้งค่าใหม่ - และประเด็นคืออะไร? - หากเราไม่ต้องการให้ใครมาเปลี่ยนค่าของตัวแปรอ็อบเจกต์ของเรา เราก็แค่เขียน no method set หรือกำหนดให้เป็นส่วนตัว คุณยังสามารถเพิ่มการตรวจสอบข้อมูลเพิ่มเติมในวิธีนี้ หากค่าที่ส่งผ่านใหม่ไม่ถูกต้อง ไม่ต้องเปลี่ยนแปลงอะไร - นั่นดูน่าสนใจ. - เนื่องจากมีตัวแปรจำนวนมากในคลาส ชื่อของเมธอดจึงได้รับและตั้งค่ามักจะรวมชื่อของตัวแปรที่พวกเขาทำงานด้วย -ถ้าตัวแปรชื่อfullNameเมธอดควรตั้งชื่อว่าgetFullNameและsetFullName และอื่น ๆ ในทำนองเดียวกัน - เข้าใจแล้ว! โดยรวมแล้วเป็นแนวทางที่เข้าใจได้ - ต่อไปนี้เป็นตัวอย่างวิธีการทำงานกับวัตถุที่สร้างขึ้นใหม่:5 Diego, งานสำหรับการสร้างคลาสและวัตถุของตัวเอง
- เฮ้ อามีโก้! นี่คืองานบางอย่างในการสร้างคลาสและวัตถุ:งาน | |
---|---|
1 | สร้างคลาส Cat สร้างคลาส Cat แมวจะต้องมีชื่อ (ชื่อ, สตริง), อายุ (อายุ, int), น้ำหนัก (น้ำหนัก, int) และความแข็งแรง (strength, int) |
2 | Implement method fight Implement method boolean fight(Cat anotherCat): ใช้กลไกการต่อสู้โดยขึ้นอยู่กับน้ำหนัก อายุ และความแข็งแรงของแมว สร้างที่พึ่งได้ด้วยตัวเอง เมธอดควรพิจารณาว่า cat ปัจจุบัน (วัตถุที่ถูกเรียกวิธีการต่อสู้) หรือ anotherCat ชนะการต่อสู้ กล่าวคือ คืนค่าจริงหากแมวปัจจุบันชนะ และเท็จ หากไม่ชนะ ต้องตรงตามเงื่อนไขต่อไปนี้:
|
3 | Getters และ setters สำหรับคลาส Dog < สร้างคลาส Dog สุนัขต้องมีชื่อ - ชื่อสตริงและอายุ - int age สร้าง getters และ setters สำหรับตัวแปรทั้งหมดของคลาส Dog |
4 | สร้างวัตถุประเภท Cat สามรายการ สร้างวัตถุประเภท Cat สามรายการในเมธอดหลักและกรอกข้อมูลด้วยข้อมูล ใช้คลาส Cat ของงานแรก อย่าสร้างคลาส Cat |
5 | จัดการต่อสู้แบบสองสามครั้งระหว่างแมว สร้างแมวสามตัวโดยใช้คลาส Cat จัดการต่อสู้สามคู่ระหว่างแมว อย่าสร้างคลาส Cat สำหรับการต่อสู้ ใช้วิธีบูลีนต่อสู้(Cat anotherCat) แสดงผลการต่อสู้แต่ละครั้ง |
6 Risha พูดถึงการกำหนดค่าเริ่มต้นของวัตถุ
- ฉันต้องการบอกคุณเกี่ยวกับการเริ่มต้นวัตถุ เมื่อวัตถุถูกสร้างขึ้น จำเป็นต้องกำหนดข้อมูลเริ่มต้นให้กับตัวแปรเพื่อหลีกเลี่ยงสถานการณ์เมื่อคุณพยายามเข้าถึงวัตถุ และวัตถุนั้นไม่มีข้อมูลที่จำเป็นในการทำงานอย่างถูกต้อง - ลองพิจารณาวัตถุประเภทไฟล์ ข้อมูลที่จำเป็นขั้นต่ำสำหรับไฟล์คือชื่อ ไฟล์ที่ไม่มีชื่อเป็นเรื่องไร้สาระ - สมมติว่าคุณกำลังเขียนคลาสไฟล์เวอร์ชันของคุณเอง (เช่น MyFileClass เป็นต้น) เพื่อทำงานกับไฟล์ ข้อมูลใดที่จำเป็นสำหรับแต่ละออบเจกต์ของคลาสนี้ - ชื่อของไฟล์ที่วัตถุนี้จะทำงานด้วย? - ถูกตัอง. นั่นเป็นเหตุผลที่เราเพิ่มเมธอดinitialize()ให้กับคลาสของเรา จะมีลักษณะดังนี้: - เราได้เพิ่มเมธอดแล้วเริ่มต้นเพื่อให้สามารถทำงานกับวัตถุ - เรียกวิธีการของมัน ซึ่งสามารถทำได้ทันทีหลังจากเรียกใช้เมธอด initialize หากคุณไม่สามารถทำงานกับวัตถุ ได้จะเรียกว่าinvalidมิฉะนั้นก็ใช้ได้ วัตถุประสงค์หลักของเมธอด initialize – คือการส่งข้อมูลที่จำเป็นทั้งหมดไปยังอ็อบเจกต์เพื่อทำให้ถูกต้อง - เข้าใจแล้ว! - ตอนนี้มาทำให้งานซับซ้อนขึ้น หรือค่อนข้างง่าย ขึ้นอยู่กับว่าคุณมองมันอย่างไร ลองนึกภาพว่าสำหรับโปรแกรมเมอร์คนอื่นที่จะใช้คลาสของเรา การไม่ส่งชื่อไฟล์แบบเต็มจะง่ายกว่า แต่ส่งไดเร็กทอรีและชื่อไฟล์แบบสั้น เราสามารถใช้ฟังก์ชันนี้ได้โดยใช้วิธีอื่นในการเริ่มต้น ( Java เปิดใช้งานเพื่อสร้างหลายวิธีด้วยชื่อที่เหมือนกัน). จากนั้นชั้นเรียนของเราจะมีลักษณะดังนี้: - ยิ่งไปกว่านั้น บ่อยครั้งที่จำเป็นต้องสร้างสำเนาไฟล์ชั่วคราวถัดจากไฟล์ปัจจุบัน - เราสามารถทำวิธีการสำหรับกรณีนี้ได้หรือไม่? - แน่นอน ลองดูสิ่งนี้: - ฉันจะทำวิธีการเหล่านี้ได้มากเท่าที่ต้องการไหม - แน่นอนด้วยเหตุผล แต่จริง ๆ แล้ว ได้มากเท่าที่คุณต้องการ - และเมื่อใดจำเป็นต้องเรียกใช้เมธอด initialize? - ทันทีหลังจากสร้างวัตถุแล้ว ให้เปลี่ยนเป็นวัตถุที่ถูกต้อง: - แล้วเมธอด getFolder() นี้คืออะไร? - คุณสามารถดูได้จากชื่อของมันว่าวิธีนี้คือการส่งคืนสตริงที่มีชื่อโฟลเดอร์ซึ่งเป็นที่ตั้งของไฟล์ของเรา แต่เราไม่ได้เขียนการนำไปใช้งานไว้ที่นี่ เป็นเพียงการแสดงเท่านั้น7 Diego งานเริ่มต้นวัตถุ
- เฮ้ อามีโก้! ฉันเบื่อโดยไม่มีบทเรียนของเรา นี่คืองานเริ่มต้นของวัตถุ:งาน | |
---|---|
1 | สร้างเพื่อนในชั้นเรียน สร้างเพื่อนในชั้นเรียนด้วยตัวเริ่มต้นสามตัว (สามวิธีในการเริ่มต้น): - ชื่อ - ชื่อ, อายุ - ชื่อ, อายุ, เพศ |
2 | สร้างคลาส Cat สร้างคลาส Cat ด้วยตัวเริ่มต้นห้าตัว: - ชื่อ - ชื่อ, น้ำหนัก, อายุ - ชื่อ, อายุ (น้ำหนักมาตรฐาน) - น้ำหนัก, สี, (ไม่ทราบชื่อ, ที่อยู่และอายุ, เป็นแมวซอย) - น้ำหนัก, สี, ที่อยู่ (มันเป็นแมวบ้านของคนอื่น) งานของ Initializer คือการทำให้วัตถุนั้นถูกต้อง ตัวอย่างเช่น หากไม่ทราบน้ำหนัก คุณต้องระบุน้ำหนักเฉลี่ยบางส่วน แมวไม่สามารถมีน้ำหนักได้เลย อายุก็เช่นกัน แต่ไม่สามารถมีชื่อได้ (null) เช่นเดียวกับที่อยู่ - สามารถเป็นโมฆะได้ |
3 | สร้างคลาส Dog สร้างคลาส Dog ด้วยตัวเริ่มต้นสามตัว: - ชื่อ - ชื่อ, ความสูง - ชื่อ, ความสูง, สี |
4 | สร้างคลาส Circle สร้างคลาส Circle ด้วยตัวเริ่มต้นสามตัว: - centerX, centerY, รัศมี - centerX, centerY, รัศมี, ความกว้าง - centerX, centerY, รัศมี, ความกว้าง, สี |
5 | สร้างคลาสสี่เหลี่ยมผืนผ้า สร้างคลาสสี่เหลี่ยมผืนผ้า ข้อมูลจะอยู่ด้านบน ด้านซ้าย ความกว้าง และความสูง เขียนเมธอด initialize (...) ให้มันมากที่สุดเท่าที่จะเป็นไปได้ ตัวอย่าง : - ควรตั้งค่าพารามิเตอร์ 4 ตัว: ซ้าย, บน, ความกว้าง, ความสูง - ไม่ได้ตั้งค่าความกว้าง/ความสูง (ทั้งคู่เท่ากับ 0) - ไม่ได้ตั้งค่าความสูง (เท่ากับ ความกว้าง) สร้างสี่เหลี่ยม - สร้างสำเนาของสี่เหลี่ยมผืนผ้าอื่น (ส่งผ่านในพารามิเตอร์) |
8 Elly พูดถึงตัวสร้าง
- ถึงเวลาที่จะบอกคุณเกี่ยวกับตัวสร้าง มันง่ายมาก: โปรแกรมเมอร์คิดค้นเครื่องหมายชวเลขสำหรับการสร้างวัตถุและการเริ่มต้น: - แต่ฉันเพิ่งเข้าใจ initializers เหล่านั้น… - อย่าอารมณ์เสีย ลองดูอย่างใกล้ชิด การใช้ตัวสร้างจะสะดวกกว่าและประหยัดพื้นที่ - ใช่ มันดูดีขึ้นมาก แต่มีคำถาม: ฉันรู้วิธีเขียนเมธอด initialize ในคลาส แต่ฉันจะเขียนคอนสตรัคเตอร์ภายในคลาสได้อย่างไร - อันดับแรก ให้ดูตัวอย่างง่ายๆ: - การประกาศตัวสร้างในคลาสนั้นง่ายมาก ตัวสร้างเป็นเหมือนวิธีการเริ่มต้น แต่มีความแตกต่างสองประการ:- ชื่อของเมธอดตัวสร้างจะเหมือนกับชื่อคลาส (แทนที่จะเป็นinitialize )
- เมธอดตัวสร้างไม่มีประเภทการส่งคืน (ไม่มีการระบุประเภทเลย)
9 ดิเอโก งานคอนสตรัคเตอร์
- คุณได้พักผ่อนบ้างแล้ว ฉันเดาว่า ดี. ต่อไปนี้คืองานสร้างคอนสตรัคเตอร์:งาน | |
---|---|
1 | สร้างเพื่อนในชั้นเรียน สร้างเพื่อนในชั้นเรียนด้วยตัวสร้างสามตัว: - ชื่อ - ชื่อ, อายุ - ชื่อ, อายุ, เพศ |
2 | สร้างคลาส Cat สร้างคลาส Cat ด้วยตัวสร้างห้าตัว: - ชื่อ, - ชื่อ, น้ำหนัก, อายุ - ชื่อ, อายุ (น้ำหนักมาตรฐาน) - น้ำหนัก, สี, (ไม่ทราบชื่อ, ที่อยู่และอายุ มันเป็นแมวซอย) - น้ำหนัก, สี, ที่อยู่ (มันเป็นแมวบ้านของคนอื่น) งานของ Initializer คือการทำให้วัตถุนั้นถูกต้อง ตัวอย่างเช่น หากไม่ทราบน้ำหนัก คุณต้องระบุน้ำหนักเฉลี่ยบางส่วน แมวไม่สามารถมีน้ำหนักได้เลย อายุก็เช่นกัน แต่ไม่สามารถมีชื่อได้ (null) เช่นเดียวกับที่อยู่ - สามารถเป็นโมฆะได้ |
3 | สร้างคลาส Dog สร้างคลาส Dog ด้วยตัวสร้างสามตัว: - ชื่อ - ชื่อ, ความสูง - ชื่อ, ความสูง, สี |
4 | สร้างคลาส Circle สร้างคลาส Circle ด้วยตัวสร้างสามตัว: - centerX, centerY, รัศมี - centerX, centerY, รัศมี, ความกว้าง - centerX, centerY, รัศมี, ความกว้าง, สี |
5 | สร้างคลาสสี่เหลี่ยมผืนผ้า สร้างคลาสสี่เหลี่ยมผืนผ้า ข้อมูลจะอยู่ด้านบน ด้านซ้าย ความกว้างและความสูง สร้างคอนสตรัคเตอร์ให้ได้มากที่สุด: ตัวอย่าง: - ตั้งค่าพารามิเตอร์ 4 ตัว: ซ้าย, ด้านบน, ความกว้าง, ความสูง - ไม่ได้ตั้งค่าความกว้าง/ความสูง (ทั้งคู่เท่ากับ 0) - ไม่ได้ตั้งค่าความสูง (เท่ากับความกว้าง) สร้างสี่เหลี่ยมจัตุรัส - สร้างสำเนาของสี่เหลี่ยมผืนผ้าอื่น (ส่งผ่านพารามิเตอร์) |
10 ศาสตราจารย์ ชั้นเรียน และตัวสร้าง
- ฉันอีกแล้ว การบรรยายของเรายอดเยี่ยมมาก ฉันจะไม่ให้ลิงก์ไปยังการบรรยายที่น่าเบื่อแก่คุณ นี่คือลิงค์ไปยังสิ่งที่ยอดเยี่ยม! - คุณยังอยู่ที่นี่หรือไม่? ไปอย่างรวดเร็ว อ่าน และฉันต้องไปที่ห้องทดลอง CodeGym บรรยาย 5 อภิปราย11 ฮูลิโอ
- เฮ้ อามีโก้! ฉันเหนื่อยนิดหน่อย. พักสักหน่อยแล้วค่อยเริ่มบทเรียน ฉันพบตอนใหม่แล้ว:12 จอห์น สเควอเรลส์
- สวัสดีทหาร! - สวัสดีตอนเช้าครับท่าน! - ฉันมีข่าวที่ยอดเยี่ยมสำหรับคุณ นี่คืองานที่ต้องเสริมทักษะของคุณ ทำทุกวันและคุณจะเพิ่มพูนทักษะของคุณได้อย่างรวดเร็ว งานได้รับการออกแบบมาเป็นพิเศษให้ทำใน Intellij IDEAงานเพิ่มเติมที่ต้องทำใน Intellij Idea | |
---|---|
1 | 1. สามคลาส 1. สร้างคลาส Cat and Dog โดยเปรียบเทียบกับคลาส Duck 2. คิดว่าเมธอด toString ควรกลับมาในคลาส Cat and Dog อย่างไร 3. ในเมธอดหลัก ให้สร้างออบเจ็กต์สองรายการในแต่ละคลาสและแสดงผล 4. วัตถุคลาส Duck ถูกสร้างขึ้นและแสดง |
2 | ชายและหญิง 1. สร้างคลาสสแตติกสาธารณะชายและหญิงภายในโซลูชันคลาส 2. คลาสต้องมีฟิลด์: ชื่อ(สตริง), อายุ(int), ที่อยู่(สตริง) 3. สร้างคอนสตรัคเตอร์เพื่อส่งผ่านพารามิเตอร์ที่เป็นไปได้ทั้งหมด 4. ใช้ตัวสร้างเพื่อสร้างวัตถุสองชิ้นของแต่ละคลาสพร้อมข้อมูลทั้งหมด 5. แสดงวัตถุในรูปแบบ [ชื่อ + " " + อายุ + " " + ที่อยู่] |
3 | 3. สร้างคลาสสาธารณะแบบคงที่ Dog and Cat เพิ่มสามฟิลด์ในแต่ละชั้นเรียนตามที่คุณต้องการ สร้างวัตถุสำหรับตัวการ์ตูน Tom and Jerry เท่าที่คุณจำได้ ตัวอย่าง: Mouse jerryMouse = เมาส์ใหม่ (“Jerry”, 12 (ความสูง ซม.), 5 (ความยาวหาง ซม.)) |
4 | 4. แสดงวันที่ปัจจุบัน แสดงบนหน้าจอวันที่ปัจจุบันในรูปแบบที่คล้ายกับ «21 02 2014» |
5 | 5. อ่านตัวเลขจากแป้นพิมพ์และคำนวณผลรวม อ่านตัวเลขจากแป้นพิมพ์และคำนวณผลรวมจนกว่าผู้ใช้จะป้อนคำว่า «ผลรวม» แสดงผลรวมบนหน้าจอ |
งานโบนัส | |
---|---|
1 | 1. โปรแกรมไม่คอมไพล์และรัน ซ่อมมัน. งาน:โปรแกรมควรอ่านจากแป้นพิมพ์ตัวเลขสองตัวและแสดงผลรวม |
2 | 2. เพิ่มฟังก์ชั่นใหม่ให้กับโปรแกรม งานเก่า:เพิ่มฟังก์ชันใหม่ที่อ่านจากแป้นพิมพ์ตัวเลขสองตัวและแสดงค่าต่ำสุด งานใหม่:เพิ่มฟังก์ชันใหม่ที่อ่านจากแป้นพิมพ์ห้าตัวเลขและแสดงค่าต่ำสุด |
3 | 3. การเรียนรู้และฝึกฝนอัลกอริทึม งาน:เขียนโปรแกรมที่ 1. อ่านจากคอนโซลหมายเลข N ที่มากกว่าศูนย์ 2. จากนั้นอ่านหมายเลข N จากคอนโซล 3 แสดงจำนวน N สูงสุดที่ป้อน |
GO TO FULL VERSION