ฉันสามารถเป็นนักพัฒนาซอฟต์แวร์ได้หรือไม่

ระดับเก่า 05 - 1หลักการทางทะเลระบุว่า: หากคุณพบชายหรือหญิงที่เหมาะสมทางร่างกาย คุณสามารถทำให้เขาหรือเธอเป็นเครื่องบินรบที่มีเอกลักษณ์เฉพาะได้ โดยต้องได้รับการฝึกฝนและการศึกษาที่เหมาะสม การเขียนโปรแกรมเป็นเพียงทักษะเดียวกับการเล่นกีตาร์ ว่ายน้ำ หรือขี่จักรยาน คนเราไม่ได้เกิดมาเป็นไบค์เกอร์ เมื่อฉันเห็นเพื่อนที่ทำงานหนักกว่าฉันสองเท่าและได้เงินน้อยกว่าฉันถึงสี่เท่า ฉันเริ่มบทสนทนาต่อไปนี้: — คุณอยากทำงานเป็นโปรแกรมเมอร์ไหม คุณฉลาดจริงๆ บางทีคุณอาจไม่ได้อยู่ในสถานที่ของคุณ?

ทำไมต้องพัฒนาซอฟต์แวร์?

ก่อนที่จะเริ่มสอนคนเขียนโปรแกรม เราควรค้นหาให้ดีก่อนว่ามันให้อะไรแก่เขาหรือเธอ

1 งานที่เรียบง่ายและน่าสนใจ

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

2 มันจ่ายดี.

ฉันแค่สนุกกับการดูเพื่อนๆ ซื้อรถและบ้านให้ตัวเองในเวลา 5 ปี

3 ชั่วโมงที่ยืดหยุ่น

ตารางการทำงานที่เข้มงวดเป็นสิ่งที่น่ารังเกียจ ใครเคยรถติดช่วงชั่วโมงเร่งด่วนหรือโดนปรับเพราะมาสาย 5 นาทีรับรองได้ แล้วการมาถึงที่ทำงาน 11 โมงเลิก 5 โมงเย็นล่ะ? สำหรับโปรแกรมเมอร์ส่วนใหญ่ มันเป็นกำหนดการปกติ เพียงแค่ทำงานของคุณและไม่มีใครจะพูดข้ามคำ คุณอาจทำงานที่บ้านในบริษัทส่วนใหญ่ คุณสามารถทำข้อตกลงที่สมเหตุสมผลกับนายจ้างของคุณได้เสมอ

4 การเติบโตอย่างมืออาชีพ

ในบริษัทส่วนใหญ่ คุณจำเป็นต้องไต่ระดับอาชีพเพื่อให้ได้ค่าตอบแทนที่ดี นักพัฒนาซอฟต์แวร์ต้องเป็นนักพัฒนาซอฟต์แวร์เท่านั้น คุณไม่จำเป็นต้องมีคุณสมบัติอีกครั้งจากนักพัฒนาเป็นผู้จัดการหรือพยายามที่จะเป็นผู้นำ สิ่งที่คุณต้องทำคือเติบโตอย่างมืออาชีพ นักพัฒนาที่มีประสบการณ์ 5 ถึง 10 ปีจะได้รับค่าตอบแทน

5 ความคล่องตัวระหว่างประเทศสูง

มีสามอาชีพที่ได้รับค่าตอบแทนสูงที่สุดในโลก: ทนายความ แพทย์ และนักพัฒนาซอฟต์แวร์ เป็นความท้าทายที่แท้จริงสำหรับนักกฎหมายที่ทำงานในต่างประเทศ: กฎหมายต่างๆ คดีความ ฯลฯ แพทย์ต้องเรียนรู้ภาษา มาตรฐานทางการแพทย์อื่นๆ และสอบผ่าน นักพัฒนาไม่ต้องเรียนรู้อะไรเพิ่มเติม ภาษาเดียวกัน. มาตรฐานเดียวกัน. ส่วนใหญ่แล้วแม้แต่ลูกค้าก็เหมือนกัน

ทำไมต้องจาวา?

ปัจจัยทั้งหมดสามประการต่อไปนี้ทำให้ฉันฝึกคนอีกครั้งสำหรับนักพัฒนา Java

1. Java — เป็นหนึ่งในภาษาที่ง่ายที่สุดสำหรับการเรียนรู้

คนที่เพิ่งเรียนจบสามารถเรียนรู้ได้ภายใน 3 ถึง 6 เดือน ขึ้นอยู่กับความรู้พื้นฐานและจำนวนชั่วโมงที่เรียน

2. ตลาดแรงงานมีความต้องการสูง

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

3. เงินเดือนสูงสุดในสายงาน

สูงที่สุดแห่งหนึ่ง นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับนักพัฒนารุ่นเยาว์  

การเขียนโปรแกรมเป็นทักษะ

ระดับเก่า 05 - 2คุณไม่สามารถอ่านหนังสือและเป็นโปรแกรมเมอร์คอมพิวเตอร์ได้ คุณต้องฝึกฝนอย่างน้อย 500 ชั่วโมง เช่นเดียวกับมวย คุณไม่สามารถดูการแข่งขันและกลายเป็นมืออาชีพได้ คุณต้องฝึกฝนเป็นเวลาหลายปี (นั่นคือสาเหตุที่ CodeGym มีงานเชิงปฏิบัติมากมาย) ข้อเสนอทั้งหมดของการสอนวิธีเขียนโปรแกรมให้คุณใน 10 ชั่วโมงจะเหมือนกันกับข้อเสนอสอนคุณลงกล่องใน 10 ชั่วโมง แล้วโยนคุณขึ้นเวทีมวย! อย่าทำอย่างนั้น บางครั้งเมื่อมีมือใหม่ถามในฟอรัมว่าจะเป็นนักพัฒนาซอฟต์แวร์ได้อย่างไร เขาจะได้รับคำแนะนำให้ประดิษฐ์งานสำหรับตัวเองและลงมือทำ นั่นจะไม่ทำงานสิ่งนี้คือบุคคลไม่สามารถทำงานนอกเหนือความรู้ของเขาได้ คุณรู้บางอย่างหรือคุณไม่รู้ เฉพาะผู้ที่รอบรู้ในเรื่องนั้นๆ เท่านั้นที่สามารถสร้างชุดงานต่อเนื่องสำหรับคุณ ซึ่งแต่ละงานจะสอนสิ่งใหม่ๆ ให้คุณ และใช้เวลาหลายสัปดาห์ในการแก้ปัญหา นั่นคือสิ่งที่ฉันทำใน CodeGym

วิธีการสอนนวัตกรรมใหม่

การศึกษาของ CodeGym นั้นแตกต่างไปจากการศึกษาระดับวิทยาลัย คุณจะสังเกตเห็นได้ในไม่ช้า มันมีประสิทธิภาพมากขึ้น การเรียนในวิทยาลัยของคุณน่าจะเป็นแบบนี้: การบรรยายยาวๆ และการฝึกฝนเพื่อตอกย้ำสิ่งที่คุณได้เรียนรู้ ตามแนวทางนี้ คุณจะพัฒนาความรู้ของคุณ ไม่ใช่ทักษะ พูดตามตรง ทักษะที่คุณได้รับด้วยวิธีนี้แทบไม่มีค่าอะไรเลย ฉันมีแนวทางอื่น ฉันเชื่อว่าคนๆ หนึ่งควรถามคำถามก่อน จากนั้นจึงค่อยได้รับคำตอบจากคำถามนั้น คำตอบก่อนคำถามไม่มีค่า การบรรยายของฉันคือคำตอบสำหรับคำถามของคุณ ก่อนอื่น ฉันจะให้คุณทำงานจริงที่ยากจะแก้ไขด้วยความรู้ปัจจุบันของคุณ งานเหล่านี้ทำให้เกิดคำถามและคุณจะได้รับคำตอบที่เป็นความรู้และการบรรยายของฉัน ฉันนำเสนอความรู้ใหม่ให้คุณในสามขั้นตอน:
  1. บทนำ (ทฤษฎีขั้นต่ำและงานปฏิบัติเล็กน้อย)

  2. บล็อกความรู้หลัก (คุณควรเข้าใจหัวข้อนี้อย่างถ่องแท้)

  3. รายละเอียดและความแตกต่าง (ฉันเติมช่องว่างที่นี่)

ด้วยวิธีนี้คุณจะพบหัวข้อเดียวกันอย่างน้อยสามครั้ง และไม่คุ้มที่จะกล่าวถึงว่าทุกอย่างมีความสัมพันธ์กันอย่างมาก และเป็นไปไม่ได้เลยที่จะอธิบายหัวข้อหนึ่งอย่างครบถ้วนโดยไม่ต้องอธิบายหัวข้อก่อนหน้า อย่างน้อยเพียงบางส่วน นักเรียนบางคนถึงกับไม่พอใจที่งานบางอย่างยากเกินไปโดยบอกว่ายังไม่ได้เรียน งานดังกล่าวนำเสนอการหยุดคิด: คุณจะแก้ปัญหาโดยใช้ระดับความรู้ปัจจุบันของคุณได้อย่างไร คุณสามารถใช้เวลาหนึ่งหรือสองชั่วโมงในการแก้ปัญหาเหล่านี้ แต่ในภายหลัง คุณจะยินดีมากที่ได้พบแนวทางใหม่หรือวิธีแก้ปัญหาที่สวยงาม ในความเป็นจริง ในชีวิตจริง คุณจะได้รับงานในที่ทำงานก่อน และหลังจากนั้นคุณจะพบความรู้ในการแก้ปัญหา นั่นคือชีวิตจริงนะเด็กๆ ดังนั้นยิ่งคุณคุ้นเคยกับวิธีการดังกล่าวเร็วเท่าไหร่ก็ยิ่งดีเท่านั้น

ระดับ 5

ระดับเก่า 05 - 3

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()» . ระดับเก่า 05 - 4- คลาสอ็อบเจกต์มีคุณสมบัติที่น่าสนใจสองประการ: - ประการแรก ออบเจกต์แต่ละคลาสเก็บสำเนาของตัวแปรคลาสของตนเองดังนั้น หากมีการประกาศตัวแปร x, y ในคลาสและสร้างออบเจกต์ 10 รายการในคลาสนี้ แต่ละออบเจ็กต์จะมีตัวแปรของตัวเอง การเปลี่ยนตัวแปรของวัตถุไม่มีผลกับตัวแปรของวัตถุอื่น - ประการที่สอง เมื่อวัตถุใหม่ถูกสร้างขึ้น พารามิเตอร์ต่างๆ สามารถส่งผ่านไปยังวัตถุนั้นได้ สิ่งเหล่านี้เรียกว่า «ค่าเริ่มต้น» มันเกือบจะเหมือนกับการตั้งชื่อเมื่อแรกเกิด ไม่สามารถสร้างออบเจกต์จำนวนมากโดยไม่ผ่านพารามิเตอร์ดังกล่าว - ฉันเข้าใจนิดหน่อย. และคุณพูดอะไรเกี่ยวกับตัวแปรคลาส? - ทุกวัตถุมีสำเนาของข้อมูล (ตัวแปรคลาส) ระดับเก่า 05 - 5

2 ริชา พูดถึงแพ็คเกจ

- เฮ้ อามีโก้! ตอนนี้ฉันบอกคุณเกี่ยวกับแพ็คเกจ - ไฟล์ในคอมพิวเตอร์ถูกจัดกลุ่มเป็นโฟลเดอร์ คลาสใน Java (แต่ละคลาสอยู่ในไฟล์แยกต่างหาก) จะถูกจัดกลุ่มตามแพ็คเกจที่เป็นโฟลเดอร์ในแผ่นดิสก์ นี่ไม่ใช่เรื่องใหม่ แต่มีสองข้อสังเกต - อย่างแรก«ชื่อคลาสเต็มที่ไม่ซ้ำกัน» คือ «ชื่อแพ็คเกจ» + «ชื่อคลาส » ตัวอย่าง: ระดับเก่า 05 - 6- ชื่อเต็มของคลาสจะไม่ซ้ำกันเสมอ! - มันยากมากที่จะเขียนชื่อยาวๆ เช่นjava.util.ArrayListทุกครั้ง ดังนั้นในรหัสของคุณ คุณสามารถใช้ชื่อย่อของคลาสอื่นได้ แต่เพื่อสิ่งนั้นคุณต้องใช้เวทมนตร์ - เวทมนตร์อะไร? - คุณสามารถใช้คำสั่ง«import java.util.ArrayList;» - ในการเริ่มต้นคลาส ทันทีที่ประกาศแพ็กเกจ คุณต้องระบุชื่อเต็มของ คลาส ArrayListที่ใช้ในโค้ดของคุณ สมมติว่าคุณใช้คลาส java.util.ArrayList, sun.generic.ArrayList และ com.oracle.ArrayList ในโค้ดของคุณ คุณสามารถระบุหนึ่งในนั้นในการนำเข้า (เช่น sun.generic.ArrayList;) และใช้ชื่อย่อ มันเกี่ยวกับชั้นเรียนเดียวเท่านั้น - ทำไมสิ่งนี้จึงซับซ้อน สามารถมีชั้นเรียนที่มีชื่อเหมือนกันได้หรือไม่? - ใช่ ในแพ็คเกจที่แตกต่างกันสามารถมีคลาสที่มีชื่อเดียวกันได้ แต่เราไม่สามารถนำเข้าสองคลาสที่มีชื่อเดียวกันกับคลาสของเราได้ดังนั้นเราจึงต้องใช้ชื่อเต็มกับหนึ่งในนั้น - นี่คือการเปรียบเทียบอื่น คุณมีบิลอยู่ในทีม และไม่มีปัญหาในการสื่อสาร เพราะทุกคนรู้ว่าเป็นใคร แต่ถ้ามีตั๋วเงินสามใบ คุณก็ต้องใช้ชื่อเต็มไม่ซ้ำกันเพื่อแยกความแตกต่างระหว่างตั๋วเงินทั้งสอง - ประการที่สองเป็นการ ดีกว่าที่จะใส่คลาสลงใน แพ็คเกจและไม่อยู่ในโฟลเดอร์รูท src ไม่มีปัญหาเมื่อมีชั้นเรียนน้อย แต่จะสับสนได้ง่ายเมื่อมีจำนวนมาก ดังนั้นควรสร้างคลาสในแพ็คเกจเท่านั้น กฎใน Java คือการตั้งชื่อคลาสและแพ็คเกจที่อธิบายตัวเองได้ หลายบริษัทสร้างไลบรารี (ชุดคลาส) และตั้งชื่อชุดของคลาสเหล่านี้ตามชื่อบริษัท/เว็บไซต์เพื่อหลีกเลี่ยงความสับสน: ระดับเก่า 05 - 7

3 Kim แสดงวิดีโอสอน

- เฮ้ อามีโก้! ต่อไปนี้คือวิดีโอบทช่วยสอนสองสามรายการ วิธีสร้างคลาสและแพ็คเกจ:
- เราทำไปแล้ว! - คุณจะทำสิ่งนี้เป็นพันครั้งในชีวิตหุ่นยนต์ของคุณ เพื่อให้ชินกับมัน และตอนนี้คุณต้องฝึกฝน! การสร้างคลาส Java การสร้างแพ็คเกจ

4 Elly การสร้างวัตถุ การอ้างอิงวัตถุ

- ดังนั้น เราได้เรียนรู้ชั้นเรียนครั้งที่แล้ว วันนี้ฉันอยากจะบอกคุณถึงวิธีการสร้างวัตถุ มันง่ายมาก: เขียนคำหลักใหม่และชื่อคลาสสำหรับวัตถุที่เราต้องการสร้าง: ระดับเก่า 05 - 8- แต่ฉันเคยได้ยินมาก่อน - ฉันรู้ แต่โปรดฟัง - เมื่อมีการสร้างวัตถุใหม่ พารามิเตอร์ต่างๆ สามารถส่งผ่านในวงเล็บปีกกาได้ ฉันจะอธิบายในภายหลังในวันนี้ ลองพิจารณาคลาส Cat: ระดับเก่า 05 - 9- gettersและsetters เหล่านี้คืออะไร ? - ตัวแปรที่ไม่สามารถเข้าถึงได้จากคลาสอื่นถือเป็นเรื่องปกติใน Java โดยปกติแล้วตัวแปรที่ประกาศภายในคลาสจะมีตัวแก้ไขเป็นprivate - ในการให้สิทธิ์เข้าถึงตัวแปรส่วนตัว คุณควรสร้างสองวิธี: รับและตั้งค่า . เป้าหมายของเมธอด get คือการคืนค่าปัจจุบันของตัวแปรให้กับผู้ที่เรียกใช้ เป้าหมายของชุดวิธีการคือการตั้งค่าใหม่ - และประเด็นคืออะไร? - หากเราไม่ต้องการให้ใครมาเปลี่ยนค่าของตัวแปรอ็อบเจกต์ของเรา เราก็แค่เขียน no method set หรือกำหนดให้เป็นส่วนตัว คุณยังสามารถเพิ่มการตรวจสอบข้อมูลเพิ่มเติมในวิธีนี้ หากค่าที่ส่งผ่านใหม่ไม่ถูกต้อง ไม่ต้องเปลี่ยนแปลงอะไร - นั่นดูน่าสนใจ. - เนื่องจากมีตัวแปรจำนวนมากในคลาส ชื่อของเมธอดจึงได้รับและตั้งค่ามักจะรวมชื่อของตัวแปรที่พวกเขาทำงานด้วย -ถ้าตัวแปรชื่อfullNameเมธอดควรตั้งชื่อว่าgetFullNameและsetFullName และอื่น ๆ ในทำนองเดียวกัน - เข้าใจแล้ว! โดยรวมแล้วเป็นแนวทางที่เข้าใจได้ - ต่อไปนี้เป็นตัวอย่างวิธีการทำงานกับวัตถุที่สร้างขึ้นใหม่: ระดับเก่า 05 - 10

5 Diego, งานสำหรับการสร้างคลาสและวัตถุของตัวเอง

- เฮ้ อามีโก้! นี่คืองานบางอย่างในการสร้างคลาสและวัตถุ:
งาน
1 สร้างคลาส Cat
สร้างคลาส Cat แมวจะต้องมีชื่อ (ชื่อ, สตริง), อายุ (อายุ, int), น้ำหนัก (น้ำหนัก, int) และความแข็งแรง (strength, int)
2 Implement method fight
Implement method boolean fight(Cat anotherCat): ใช้กลไกการต่อสู้โดยขึ้นอยู่กับน้ำหนัก อายุ และความแข็งแรงของแมว สร้างที่พึ่งได้ด้วยตัวเอง เมธอดควรพิจารณาว่า cat ปัจจุบัน (วัตถุที่ถูกเรียกวิธีการต่อสู้) หรือ anotherCat ชนะการต่อสู้ กล่าวคือ คืนค่าจริงหากแมวปัจจุบันชนะ และเท็จ หากไม่ชนะ ต้องตรงตามเงื่อนไขต่อไปนี้:

if cat1.fight(cat2) == true, then cat2.fight(cat1) == false
3 Getters และ setters สำหรับคลาส Dog <
สร้างคลาส Dog สุนัขต้องมีชื่อ - ชื่อสตริงและอายุ - int age
สร้าง getters และ setters สำหรับตัวแปรทั้งหมดของคลาส Dog
4 สร้างวัตถุประเภท Cat สามรายการ
สร้างวัตถุประเภท Cat สามรายการในเมธอดหลักและกรอกข้อมูลด้วยข้อมูล
ใช้คลาส Cat ของงานแรก อย่าสร้างคลาส Cat
5 จัดการต่อสู้แบบสองสามครั้งระหว่างแมว
สร้างแมวสามตัวโดยใช้คลาส Cat
จัดการต่อสู้สามคู่ระหว่างแมว
อย่าสร้างคลาส Cat สำหรับการต่อสู้ ใช้วิธีบูลีนต่อสู้(Cat anotherCat)
แสดงผลการต่อสู้แต่ละครั้ง

6 Risha พูดถึงการกำหนดค่าเริ่มต้นของวัตถุ

- ฉันต้องการบอกคุณเกี่ยวกับการเริ่มต้นวัตถุ เมื่อวัตถุถูกสร้างขึ้น จำเป็นต้องกำหนดข้อมูลเริ่มต้นให้กับตัวแปรเพื่อหลีกเลี่ยงสถานการณ์เมื่อคุณพยายามเข้าถึงวัตถุ และวัตถุนั้นไม่มีข้อมูลที่จำเป็นในการทำงานอย่างถูกต้อง - ลองพิจารณาวัตถุประเภทไฟล์ ข้อมูลที่จำเป็นขั้นต่ำสำหรับไฟล์คือชื่อ ไฟล์ที่ไม่มีชื่อเป็นเรื่องไร้สาระ - สมมติว่าคุณกำลังเขียนคลาสไฟล์เวอร์ชันของคุณเอง (เช่น MyFileClass เป็นต้น) เพื่อทำงานกับไฟล์ ข้อมูลใดที่จำเป็นสำหรับแต่ละออบเจกต์ของคลาสนี้ - ชื่อของไฟล์ที่วัตถุนี้จะทำงานด้วย? - ถูกตัอง. นั่นเป็นเหตุผลที่เราเพิ่มเมธอดinitialize()ให้กับคลาสของเรา จะมีลักษณะดังนี้: ระดับเก่า 05 - 11- เราได้เพิ่มเมธอดแล้วเริ่มต้นเพื่อให้สามารถทำงานกับวัตถุ - เรียกวิธีการของมัน ซึ่งสามารถทำได้ทันทีหลังจากเรียกใช้เมธอด initialize หากคุณไม่สามารถทำงานกับวัตถุ ได้จะเรียกว่าinvalidมิฉะนั้นก็ใช้ได้ วัตถุประสงค์หลักของเมธอด initialize – คือการส่งข้อมูลที่จำเป็นทั้งหมดไปยังอ็อบเจกต์เพื่อทำให้ถูกต้อง - เข้าใจแล้ว! - ตอนนี้มาทำให้งานซับซ้อนขึ้น หรือค่อนข้างง่าย ขึ้นอยู่กับว่าคุณมองมันอย่างไร ลองนึกภาพว่าสำหรับโปรแกรมเมอร์คนอื่นที่จะใช้คลาสของเรา การไม่ส่งชื่อไฟล์แบบเต็มจะง่ายกว่า แต่ส่งไดเร็กทอรีและชื่อไฟล์แบบสั้น เราสามารถใช้ฟังก์ชันนี้ได้โดยใช้วิธีอื่นในการเริ่มต้น ( Java เปิดใช้งานเพื่อสร้างหลายวิธีด้วยชื่อที่เหมือนกัน). จากนั้นชั้นเรียนของเราจะมีลักษณะดังนี้: ระดับเก่า 05 - 12- ยิ่งไปกว่านั้น บ่อยครั้งที่จำเป็นต้องสร้างสำเนาไฟล์ชั่วคราวถัดจากไฟล์ปัจจุบัน - เราสามารถทำวิธีการสำหรับกรณีนี้ได้หรือไม่? - แน่นอน ลองดูสิ่งนี้: ระดับเก่า 05 - 13- ฉันจะทำวิธีการเหล่านี้ได้มากเท่าที่ต้องการไหม - แน่นอนด้วยเหตุผล แต่จริง ๆ แล้ว ได้มากเท่าที่คุณต้องการ - และเมื่อใดจำเป็นต้องเรียกใช้เมธอด initialize? - ทันทีหลังจากสร้างวัตถุแล้ว ให้เปลี่ยนเป็นวัตถุที่ถูกต้อง: ระดับเก่า 05 - 14- แล้วเมธอด 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 พูดถึงตัวสร้าง

- ถึงเวลาที่จะบอกคุณเกี่ยวกับตัวสร้าง มันง่ายมาก: โปรแกรมเมอร์คิดค้นเครื่องหมายชวเลขสำหรับการสร้างวัตถุและการเริ่มต้น: ระดับเก่า 05 - 15- แต่ฉันเพิ่งเข้าใจ initializers เหล่านั้น… - อย่าอารมณ์เสีย ลองดูอย่างใกล้ชิด การใช้ตัวสร้างจะสะดวกกว่าและประหยัดพื้นที่ - ใช่ มันดูดีขึ้นมาก แต่มีคำถาม: ฉันรู้วิธีเขียนเมธอด initialize ในคลาส แต่ฉันจะเขียนคอนสตรัคเตอร์ภายในคลาสได้อย่างไร - อันดับแรก ให้ดูตัวอย่างง่ายๆ: ระดับเก่า 05 - 16- การประกาศตัวสร้างในคลาสนั้นง่ายมาก ตัวสร้างเป็นเหมือนวิธีการเริ่มต้น แต่มีความแตกต่างสองประการ:
  • ชื่อของเมธอดตัวสร้างจะเหมือนกับชื่อคลาส (แทนที่จะเป็น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 สูงสุดที่ป้อน