CodeGym /Java Blog /Toto sisi /舊級別 05
John Squirrels
等級 41
San Francisco

舊級別 05

在 Toto sisi 群組發布

我可以成為軟件開發人員嗎?

舊級別 05 - 1海洋原則指出:如果你找到身體合適的男人或女人,你可以讓他或她成為一名獨特的戰士,為他們提供正確的培訓和教育。編程就像彈吉他、游泳或騎自行車一樣。人們不是天生的騎自行車的人。當我看到我的朋友們,他們比我努力工作兩倍而得到的錢卻少四倍時,我開始了以下對話: - 你想成為一名程序員嗎?你真聰明。也許,您根本不在自己的位置上?

為什麼要開發軟件?

在開始教一個人編程之前,我們最好弄清楚編程給他或她帶來了什麼。

1 簡單而有趣的工作。

軟件工程師是一份簡單而有趣的工作。它有很大的創造空間。我喜歡它。起初,我為自己喜歡做的事並因此獲得報酬而發瘋。但後來我最終習慣了。

2 報酬豐厚。

我只是喜歡看著我的朋友們在 5 年的工作中為自己買車買房。

3 靈活的時間。

嚴格的工作時間表是一件令人討厭的事情。凡是有過上下班高峰期堵車或遲到5分鐘被罰款的人都可以證實這一點。上午 11 點上班下午 5 點下班怎麼樣?對於大多數程序員來說,這是一個通常的時間表。只做你的工作,沒有人會說錯話。在大多數公司,您甚至可以在家工作。您始終可以與您的雇主達成合理的協議。

4 專業成長。

在大多數公司中,您需要攀登職業階梯才能獲得豐厚的報酬。軟件開發人員只需要是軟件開發人員。您不必從開發人員到經理重新獲得資格,也不必試圖佔據領先地位。您需要做的就是專業成長。擁有 5 至 10 年經驗的開發人員可獲得高額報酬。

5 國際流動性高。

世界上收入最高的三種職業:律師、醫生和軟件開發人員。這對在國外工作的律師來說是一個真正的挑戰:不同的法律、判例法等。醫生必須學習語言、其他醫學標準並通過考試。開發人員無需額外學習任何內容。同一種語言。相同的標準。在大多數情況下,甚至客戶都是相同的。

為什麼選擇Java?

以下三個因素的總和使我為 Java 開發人員重新培訓人員。

1. Java — 是最容易學習的語言之一。

一個剛畢業的人可以在 3 到 6 個月內學會它,這取決於基礎知識和投入學習的時間。

2、勞動力市場需求旺盛。

您可以在沒有經驗的情況下找到工作。公司熱切地僱用實習生並不斷教育他們。

3. 該領域最高的薪水。

最高之一。這對於初級開發人員尤其重要。  

編程是一種技能

舊級別 05 - 2你不可能讀完一本書就成為一名計算機程序員。你至少需要500小時的練習。就像拳擊一樣。您不能簡單地觀看比賽並成為職業選手。你需要訓練多年。(這就是 CodeGym 有這麼多實際任務的原因)。所有教你如何在 10 小時內編程的提議與教你如何在 10 小時內裝箱的提議相同。然後把你扔進拳擊台!不要那樣做。有時,當新手在論壇上詢問如何成為一名軟件開發人員時,他被告知要為自己發明任務並執行它們。那行不通的。問題是一個人不能完成超出他知識範圍的任務。你要么知道某事,要么你不知道。只有精通該主題的人才能為您創建連續的任務集,每個任務都會教給您新事物,並且不會花費數週時間來解決。這就是我在 CodeGym 中所做的。

新的創新教學方法

CodeGym 教育以不同於大學教育的方式進行。你很快就會注意到它。它更有效。你在大學的學習可能是這樣的:長時間的講座和練習來確定你所學的內容。按照這種方法,您可以提高知識,而不是技能。老實說,你這樣學到的技能,幾乎一文不值。我有另一種方法。我相信一個人應該先提出問題,然後才能得到答案。問題前的回答沒有價值。我的講座是對您問題的回答。所以首先,我給你一些用你現有的知識難以解決的實際任務。這些任務提出問題,然後你會收到我的答案,即知識和講座。我分三個階段向您介紹新知識:
  1. 介紹(最低限度的理論和一些實際任務)

  2. 主塊知識(你應該完全理解主題)

  3. 細節和細微差別(我在這裡填補空白)

這樣,您至少會遇到同一個主題三次。甚至不值得一提的是,一切都密切相關,如果不解釋前面的話題,就不可能完全解釋一個話題,至少是部分解釋。有些學生甚至反感有些任務太難了,說他們還沒學過。這樣的任務讓我們停下來思考:你如何利用你目前的知識水平來解決它們?您可以花一兩個小時來解決這些任務,但稍後您會很高興找到新的原創方法或優雅的解決方案。事實上,在現實生活中,你首先會在工作中接到一項任務,然後你才會找到解決它的知識。這就是現實生活,孩子們。因此,您越早習慣這種方法越好。

5級

舊級別 05 - 3

1 艾莉談班級

- 嘿,阿米戈! - 嗨,艾莉! - 今天我想向您解釋一下課程是什麼。-解釋#1。我將從一個類比開始。我們宇宙中的所有事物都是由原子構成的。它們可以是不同的類型:氫、氧、鐵、鈾……結合原子可以創造出各種各樣的東西或物體。- Java 的世界也是如此。這裡的程序由不同類型的對象組成(其中類是一種類型):整數、字符串、文件、對象……組合對象可以創建各種網絡服務或程序。- 不同的原子有不同的內部結構。它們包含許多電子、質子和中子。- 不同的類(Java 中的對像類型)也有不同的內部結構。它們包含各種變量和方法。 - 是的,我對原子結構有一個大概的了解。我是機器人,不是嗎? - 讓我們把程序看成一個整體:對象就像構成程序的積木。類是那些塊的類型。不同類型的塊是不同類的對象。 - 我有點明白了。 -解釋#2。 當我們需要一種新類型的對象時,我們創建了一個新類。在這個類中,我們描述了對象的期望行為。 - 好吧,我明白了一些,但我不確定這一點。 - 考慮到內部結構,該類由執行某些操作的類方法和方法存儲共享數據的類變量組成。 ——簡單的說,類就是一組方法? - 幾乎,更具體地說,類是一組一起工作的方法和變量,方法存儲不同的值以共享。 - 是的。要創建一個新類,我們需要編寫這些方法...... - 是的。我們還需要決定哪些變量是不同方法共享的,然後從一個方法中取出變量到類中:把方法變量變成類變量。- 類按以下模式創建: 1程序員決定他還需要什麼其他對象。 2程序員根據這些對象的作用將它們分為不同的類型。 3程序員為每種類型編寫一個單獨的類。 4在類中,他聲明了必要的方法和變量。 5個必須在每個方法中編寫命令,以便該方法執行程序員希望它執行的操作。 6類已準備就緒,現在您可以創建其對象。 - 驚人的!這是一個有趣的計劃。我會記住的。 - 你必須記住它,它會有用。將程序劃分為對象的編程方法稱為面向對象編程OOP)。- Java 是 OOP 方法的經典示例,因為在 Java 中一切都是對象。- 學習Java包括兩大任務:學習編寫自己的類學習使用別人的類. 今天我們從最簡單的事情開始。您將學習編寫簡單的類,當然還有創建它們的對象。對象通常稱為類的實例。這些是同義詞,無論哪種方式都是正確的。 - 知道了。 - 總而言之,我可以說這個類是一個小程序:一組數據和使用這些數據做某事的函數。類的一個重要特性是能夠創建這些類(對象)的實例。 - 要創建類對象,您需要在代碼中編寫«new class_name()»舊級別 05 - 4- 類對像有兩個有趣的特徵: -第一。 每個類對像都存儲自己的類變量副本。所以,如果在類中聲明了變量x、y,並且創建了這個類的10個對象,那麼每個對像都有自己的變量。更改一個對象的變量不會影響另一個對象的變量。 -第二。 創建新對象時,可以向其傳遞各種參數。這些就是所謂的“啟動值”。這幾乎就像在出生時給一個名字。如果不傳遞此類參數,則無法創建許多對象。 - 我明白一點。你對類變量說了什麼? - 每個對像都有其數據副本(類變量)。 舊級別 05 - 5

2 Risha 談論包裹

- 嘿,阿米戈!現在我告訴你關於包裹的事。- 計算機中的文件被分組到文件夾中。Java 中的類(每個類都在一個單獨的文件中)按包分組,這些包是光盤上的文件夾。這不是什麼新鮮事。但有兩點說明。-首先«一個唯一的全類名»是«包名» + «類名»。示例: 舊級別 05 - 6- 完整的類名始終是唯一的!-每次都 很難寫一個長名稱,例如java.util.ArrayList 。因此,在您的代碼中,您可以使用其他類的簡稱。但為此你需要使用一些魔法。 - 什麼魔法? - 您可以使用語句«import java.util.ArrayList;» - 在類的開頭,在聲明包之後,您需要指定代碼中使用的ArrayList類的全名。假設您在代碼中使用了 java.util.ArrayList、sun.generic.ArrayList 和 com.oracle.ArrayList 類。您可以在導入中指定其中之一(例如 sun.generic.ArrayList;)並使用其簡稱。它只考慮一個班級。 - 為什麼這麼複雜?可以有相同名稱的類嗎? - 是的,在不同的包中可以有同名的類。但是我們不能將兩個同名的類導入到我們的類中,因此我們必須為其中一個應用全名。- 這是另一個類比。你的團隊中有 Bill,溝通沒有任何問題,因為每個人都知道他是誰。但是如果有三個法案,那麼您將不得不使用它們的完整唯一名稱來區分它們。-其次最好將類放入包中,而不是放在src根文件夾中。類少的時候沒有問題,類多的時候就很容易搞混。因此,始終只在包中創建類。Java 中的規則是為類和包提供不言自明的名稱。許多公司生產他們的庫(類集),並且為了避免混淆,在公司/網站之後命名這些類的包: 舊級別 05 - 7

3 金秀視頻教程

- 嘿,阿米戈!這裡有幾個視頻教程,如何創建類和包:
- 我們已經做到了! - 你會在你的機器人生活中做一千次。所以習慣吧。現在,你需要練習! 創建 Java 類 創建包

4 Elly,對象創建,對象引用

- 所以,我們上次學習了課程。今天我想告訴你如何創建對象。很簡單:寫關鍵字new和我們要創建的對象的類名: 舊級別 05 - 8- 不過我以前聽過。 - 我知道,但請聽好。- 創建新對象時,可以在大括號中傳遞各種參數。今天晚些時候我會解釋一下。讓我們考慮 Cat 類: - 這些gettersetter舊級別 05 - 9是什麼? - 不能從其他類訪問的變量在 Java 中是常見的做法。通常,在類中聲明的變量具有修飾符private - 要訪問私有變量,您應該創建兩個方法:get設置方法 get 的目標是將變量的當前值返回給調用它的人。 方法集的目標是設置一個新值。 - 這有什麼意義呢? -如果我們不想讓任何人改變我們的對像變量的值,我們可以不寫任何方法set,或者將其設為private您還可以向此方法添加額外的數據檢查。如果新傳遞的值無效,則不要更改任何內容。 - 那很有意思。 - 由於類中可以有很多變量,所以方法名getset通常包括他們使用的變量的名稱。- 如果變量名為fullName,則方法應命名為getFullNamesetFullName。以此類推。 - 知道了!總體而言,這是一種可以理解的方法。 - 以下是如何使用新創建的對象的幾個示例: 舊級別 05 - 10

5 Diego,創建自己的類和對象的任務

- 嘿,阿米戈!以下是創建類和對象的一些任務:
任務
1個 創建類 Cat
創建類 Cat。一隻貓必須有它的名字 (name, String)、年齡 (age, int)、體重 (weight, int) 和強度 (strength, int)。
2個 實現方法fight
實現方法boolean fight(Cat anotherCat):根據貓的體重、年齡和力量實現一種戰鬥機制。自己補一個依賴。該方法應確定當前貓(調用其 fight 方法的對象)或另一隻貓是否贏得了戰鬥,即如果當前貓贏了則返回 true,如果沒有贏則返回 false。必須滿足以下條件:

if cat1.fight(cat2) == true, then cat2.fight(cat1) == false
3個 Dog 類的 getter 和 setter <
創建一個 Dog 類。一隻狗必須有一個名字 - String name 和 age - int age。
為 Dog 類的所有變量創建 getter 和 setter。
4個 創建三個Cat類型的對像
在main方法中創建三個Cat類型的對象,並填充數據。
使用第一個任務的類 Cat。不要創建類 Cat。
5個 在貓之間舉行三場雙打比賽
使用類別 Cat 創建三隻貓。
在貓之間進行三對配對。
不要創建類 Cat。對於戰鬥,使用方法 boolean fight(Cat anotherCat)。
顯示每場戰鬥的結果。

6 Risha談對像初始化

- 我想告訴你關於對像初始化的事情。當一個對像被創建時,需要給它的變量分配啟動數據,以避免當你試圖訪問一個對象時,它沒有數據來正常工作的情況。- 讓我們考慮一個文件類型的對象。文件的最少必要信息是它的名稱。沒有名字的文件是無稽之談。 - 假設您正在編寫自己版本的 File 類(例如 MyFileClass)來處理文件。此類的每個對象需要什麼信息? - 該對象將使用的文件的名稱? - 這是正確的。這就是為什麼我們將方法initialize()添加到我們的類中。它看起來像這樣: 舊級別 05 - 11- 我們添加了方法初始化,以便能夠使用對象 - 調用其方法。這可以在調用方法 initialize 後立即完成。如果你不能使用一個對象,它被稱為無效,否則它是有效的。方法 initialize 的主要目標是將所有必要的數據傳遞給對像以使其有效。 - 知道了! - 現在讓我們把任務複雜化。或者更確切地說,簡化。取決於你如何看待它。想像一下,對於另一個將使用我們的類的程序員來說,傳遞一個目錄和一個短文件名而不是完整文件名會更容易。我們可以使用另一種方​​法initialize來實現此功能(Java 允許創建具有相同名稱的多個方法). 那麼我們的類將如下所示: 舊級別 05 - 12- 而且,通常需要在當前文件的旁邊創建一個臨時文件副本。 - 我們可以為這種情況制定一個方法嗎? -當然,看看這個: 舊級別 05 - 13-那麼,我可以根據需要製作盡可能多的這些方法嗎? - 當然,在合理範圍內。但是,實際上,隨心所欲。 - 什麼時候需要調用初始化方法? - 創建對像後立即將其變為有效對象: 舊級別 05 - 14- 這個方法 getFolder() 是什麼? - 從它的名字就可以看出,這個方法是返回一個字符串,裡面是我們的文件所在的文件夾的名字。但是我們並沒有在這裡寫它的實現,它只是為了展示。

7 Diego,對像初始化任務

- 嘿,阿米戈!沒有我們的課我很無聊。下面是一些對像初始化任務:
任務
1個 創建類 Friend
創建類 Friend 具有三個初始化器(三種方法初始化):
- Name
- Name, age
- Name, age, sex
2個 創建一個Cat類
創建一個Cat類,有五個初始化器:
- Name
- Name, weight, age
- Name, age (標準體重)
- Weight, color, (姓名、地址和年齡未知,是一隻野貓)
- Weight,顏色,地址(是別人的家貓)
Initializer的任務是讓一個對像有效。例如,如果重量未知,則需要指定一些平均重量。貓根本沒有任何重量,年齡也是如此。但它可以沒有名稱(null)。這同樣適用於地址 - 可以為空。
3個 創建一個 Dog 類
創建一個 Dog 類,包含三個初始值設定項:
- Name
- Name, height
- Name, height, color
4個 創建一個 Circle 類
創建一個 Circle 類,具有三個初始值設定項:
- centerX, centerY, radius
- centerX, centerY, radius, width
- centerX, centerY, radius, width, color
5個 創建類 Rectangle
創建類 Rectangle。它的數據將是頂部、左側、寬度和高度。為它編寫盡可能多的初始化 (...) 方法示例


- 應設置 4 個參數:left、top、width、height
- 寬度/高度未設置(均等於 0)
- 高度未設置(等於寬度),創建一個正方形
- 創建另一個矩形的副本(它在參數中傳遞)

8 Elly 談構造函數

- 是時候告訴你構造函數了。這很簡單:程序員發明了一種用於對象創建和初始化的速記符號: 舊級別 05 - 15- 但我只是理解了那些初始化器...... - 別難過。細看。使用構造函數更方便也更節省空間。 - 是的,看起來好多了。但是有一個問題:我知道如何在類中編寫初始化方法,但是如何在類中編寫構造函數呢? - 首先,看一個簡單的例子: 舊級別 05 - 16- 在類中聲明構造函數非常容易。構造函數類似於初始化方法,但有兩點不同:
  • 構造方法的名稱與類名相同(而不是initialize)。
  • 構造函數方法沒有返回類型(根本沒有指定類型)。
- 事實上,它是相同的方法初始化,但有一些不同。我有點明白了。

9 Diego,構造任務

- 我想你已經休息了。美好的。以下是一些構造函數創建任務:
任務
1個 創建類 Friend
創建類 Friend 具有三個構造函數:
- Name
- Name, age
- Name, age, sex
2個 創建一個Cat類
創建一個Cat類,有五個構造函數:
- Name,
- Name, weight, age
- Name, age (標準體重)
- Weight, color, (姓名、地址和年齡未知。它是一隻野貓)
- Weight,顏色,地址(是別人的家貓)
Initializer的任務是讓一個對像有效。例如,如果重量未知,則需要指定一些平均重量。貓根本沒有任何重量,年齡也是如此。但它可以沒有名稱(null)。這同樣適用於地址 - 可以為空。
3個 創建一個類 Dog
使用三個構造函數創建一個類 Dog:
- Name
- Name, height
- Name, height, color
4個 創建類 Circle
創建類 Circle 具有三個構造函數:
- centerX, centerY, radius
- centerX, centerY, radius, width
- centerX, centerY, radius, width, color
5個 創建類 Rectangle
創建類 Rectangle。它的數據將是頂部、左側、寬度和高度。為其創建盡可能多的構造函數:

示例:
- 設置了 4 個參數:left、top、width、height
- 寬度/高度未設置(均等於 0)
- 高度未設置(等於寬度),創建一個正方形
- 創建另一個矩形的副本(它在參數中傳遞)

10 教授、班級和建設者

- 又是我。我們的講座簡直太棒了。我不會給你鏈接到無聊的講座。這是優秀內容的鏈接!- 你還在嗎?快走,讀書,我必須去實驗室。CodeGym 第 5 講討論

11 胡里奧

- 嘿,阿米戈!我有點累。讓我們休息一下,然後開始上課。我發現了一個新的情節:

12 約翰松鼠

- 你好,士兵! - 早上好先生! - 我有一些好消息要告訴你。以下是加強您的技能的任務。每天都這樣做,你的技能會很快提高。任務是專門為在 Intellij IDEA 中執行而設計的。
在 Intellij Idea 中完成的其他任務
1個 1. 三個類
1. 類比Duck 創建Cat 和Dog 類。
2. 想一想 Cat 和 Dog 類中的 toString 方法應該返回什麼。
3.在方法main中,在每個類中創建兩個對象並顯示它們。
4. Duck 類對象創建並顯示。
2個 男人和女人
1. 在解決方案類中創建公共靜態類男人和女人。
2.類必須有字段:name(String), age(int), address(String)。
3. 創建構造函數以將所有可能的參數傳遞給。
4. 使用構造函數為每個類創建兩個包含所有數據的對象。
5.以[姓名+“”+年齡+“”+地址]的格式顯示對象。
3個 3. 創建公共靜態類 Dog 和 Cat。
根據您的選擇向每個類添加三個字段。
盡可能多地為湯姆和傑瑞卡通人物創建對象。

示例:
Mouse jerryMouse = new Mouse(“Jerry”, 12 (height, cm), 5 (tail length, cm))
4個 4. 顯示當前日期
以類似於 «21 02 2014» 的形式在屏幕上顯示當前日期。
5個 5. 從鍵盤讀取數字併計算它們的總數
從鍵盤讀取數字併計算它們的總數,直到用戶輸入單詞 «total»。在屏幕上顯示總數。
- 這些任務是針對果嶺的。我添加了更複雜的獎勵任務。僅適用於頂級槍支。
獎勵任務
1個 1.程序沒有編譯運行。修理它。
任務:程序應該從鍵盤讀取兩個數字並顯示它們的總數。
2個 2. 為程序添加新功能。
舊任務:添加一個新函數,從鍵盤讀取兩個數字並顯示它們的最小值。
新任務:添加一個新函數,從鍵盤讀取五個數字並顯示它們的最小值。
3個 3.學習和練習算法。
任務:編寫一個程序
1. 從控制台讀取大於零的數字 N
2. 然後從控制台讀取 N 個數字
3. 顯示輸入的 N 個數字中的最大值。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION