CodeGym/Java блог/Случаен/Старо ниво 05
John Squirrels
Ниво
San Francisco

Старо ниво 05

Публикувано в групата

Мога ли да стана софтуерен разработчик?

Старо ниво 05 - 1Морският принцип гласи: ако намерите физически подходящ мъж or жена, можете да го or нея превърнете в уникален боец, ако им осигурите правилното обучение и образование. Програмирането е същото умение като свиренето на китара, плуването or карането на колело. Хората не се раждат мотористи. Когато видя моите приятели, които работят два пъти повече от мен и получават четири пъти по-малко пари, започвам следния разговор: — Искаш ли да работиш като програмист? Наистина си умен. Може би просто не сте на мястото си?

Защо разработка на софтуер?

Преди да започнем да учим човек на програмиране, по-добре да разберем Howво му дава то.

1 Проста и интересна работа.

Софтуерният инженер е проста и интересна работа. Има голямо пространство за творчество. Обичам го. Първоначално полудях при мисълта, че правя това, което ми харесва и ми плащат за това. Но след това свикнах в крайна сметка.

2 Добре е платено.

Просто се наслаждавам да гледам How приятелите ми си купуват коли и къщи след 5 години работа.

3 Гъвкави часове.

Стриктният работен график е неприятно нещо. Всеки човек, който някога е бил в задръстване в час пик or е бил глобен за 5 minutesи закъснение, може да потвърди това. А Howво ще кажете за възможността да пристигнете на работа в 11 часа сутринта и да си тръгнете в 17 часа? За повечето програмисти това е обичаен график. Просто си вършете работата и никой няма да каже кръстоска. Може дори да работите вкъщи в повечето компании. Винаги можете да постигнете разумно споразумение с вашия работодател.

4 Професионално израстване.

В повечето компании трябва да се изкачите по кариерната стълбица, за да получите добро заплащане. Разработчикът на софтуер трябва да бъде само разработчик на софтуер. Няма да се налага да се преквалифицирате от разработчик в мениджър or да се опитвате да заемете водеща позиция. Всичко, което трябва да направите, е да се развивате професионално. Разработчиците, които имат 5 до 10 години опит, получават кралско заплащане.

5 Висока международна мобилност.

Има три най-високо платени професии в света: адвокат, лекар и разработчик на софтуер. Това е истинско предизвикателство за адвокатите, работещи в чужбина: различни закони, съдебна практика и т.н. Един лекар трябва да научи езика, други медицински стандарти и да положи изпити. Разработчикът няма да трябва да учи нищо допълнително. Същият език. Същите стандарти. В повечето случаи дори клиентите са едни и същи.

Защо Java?

Следните общо три фактора ме накараха да преквалифицирам хората за Java разработчици.

1. Java — е един от най-лесните езици за изучаване.

Човек, който току-що е завършил учorще, може да го научи за 3 до 6 месеца, в зависимост от базовите знания и количеството часове, вложени в обучението.

2. Високо търсене на пазара на труда.

Можете да получите работа без предишен опит. Компаниите с нетърпение наемат стажанти и продължават да ги обучават.

3. Най-високи заплати в сферата.

Един от най-високите. Това е особено важно за младши разработчици.  

Програмирането е умение

Старо ниво 05 - 2Не можете да прочетете книга и да станете компютърен програмист. Имате нужда от поне 500 часа практика. Точно като бокса. Не можете просто да гледате мачове и да станете професионалист. Трябва да тренирате с години. (Ето защо CodeGym има толкова много практически задачи). Всички предложения за обучение How да програмирате за 10 часа са идентични с предложенията за обучение за боксиране за 10 часа. И след това да те хвърли на боксов ринг! недей така Понякога, когато новак пита във форумите How да стане софтуерен разработчик, му се казва да измисля задачи за себе си и да ги изпълнява. Това няма да работи.Работата е там, че човек не може да направи задача извън неговите познания. Или знаеш нещо, or не знаеш. Само човек, който е добре запознат с темата, е в състояние да създаде последователни задачи за вас, всяка от които ще ви научи на нови неща и няма да отнеме седмици за решаване. Това направих в CodeGym.

Нов иновативен метод на обучение

Обучението в CodeGym е напequalsо по различен начин от обучението в колежа. Ще го забележите съвсем скоро. Много по-ефективно е. Ученето ви в колежа вероятно е било така: дълги лекции и практика, за да закрепите наученото. Следвайки този подход, подобрявате своите знания, а не умения. Честно казано, вашите умения, придобити по този начин, практически не струват нищо. Имам друг подход. Смятам, че човек първо трябва да задава въпроси и едва след това да получава отговори. Отговор преди въпрос няма стойност. Моите лекции са отговори на вашите въпроси. Така че първо ви давам практически задачи, които са трудни за решаване с вашите настоящи знания. Тези задачи повдигат въпроси и тогава получавате моите отговори, които са знания и лекции. Представям ви нови знания на три етапа:
  1. Въведение (Минимум теория и няколко практически задачи)

  2. Основни блокови знания (трябва да разберете темата напълно)

  3. Подробности и нюанси (тук попълвам пропуски)

По този начин ще попаднете на една и съща тема поне три пъти. И дори не си струва да споменаваме, че всичко е много взаимосвързано и е просто невъзможно да се обясни напълно една тема, без поне частично да се обясни тази преди нея. Някои ученици дори се възмущават, че някои задачи са твърде трудни, като казват, че още не са учor това. Такива задачи предизвикват пауза за размисъл: How ги решавате, като използвате сегашното си ниво на знания? Можете да отделите час or два за решаване на тези задачи, но по-късно ще се радвате да намерите нов оригинален подход or елегантно решение. Всъщност в реалния живот първо ще получите задача на работа и едва по-късно ще намерите знания за нейното решаване. Това е истинският живот, деца. Следователно, колкото по-бързо свикнете с такъв подход, толкова по-добре.

Ниво 5

Старо ниво 05 - 3

1 Ели говори за класове

- Хей, Амиго! - Здравей, Ели! - Днес искам да ви обясня Howво представляват класовете. - Обяснение # 1. Ще започна с аналогия. Всички неща в нашата вселена са напequalsи от атоми. Те могат да бъдат от различни видове: водород, кислород, желязо, уран, ... Комбинирането на атоми позволява създаването на различни неща or предмети. - Същото важи и за вселената на Java. Тук програмите се състоят от обекти от различни типове (където класът е тип): Integer, String, File, Object, … Комбинирането на обекти позволява създаване на различни уеб услуги or програми. - Различните атоми имат различна вътрешна структура. Те съдържат определен брой електрони, протони и неутрони. - Различните класове (типове обекти в Java) също имат различна вътрешна структура. Те съдържат различни променливи и методи. - Да, имам обща представа за устройството на атома. Аз съм робот, нали? - Нека да разгледаме програмата като цяло: обектите са като градивни елементи, които изграждат програмата. Класовете са типове от тези блокове. Блокове от различни типове са обекти от различни класове. - Донякъде го разбрах. - Обяснение # 2. Създаваме нов клас, когато имаме нужда от нов тип обект. В рамките на този клас ние описваме желаното поведение на обектите. - Е, разбрах нещо, но не съм сигурен в това. - Като се има предвид вътрешната структура, класът се състои от методи на клас, които правят нещо, и променливи на клас, където методите съхраняват споделени данни. - Просто казано, класът е набор от методи? - До голяма степен, по-конкретно, класът е група от методи, които работят заедно, и променливи, в които методите съхраняват различни стойности за споделяне. - да За да създадем нов клас, трябва да напишем тези методи... - Да. Трябва също така да решим кои променливи се споделят от различни методи и след това да извадим променливи от метод в класа: да превърнем променливите на метода в променливи на класа. - Класовете се създават по следния модел: 1 Програмистът решава Howви други обекти са му необходими. 2 Програмистът разделя тези обекти на различни типове в зависимост от това Howво правят. 3 Програмистът пише отделен клас за всеки тип. 4 В класа той декларира необходимите методи и променливи. 5Командите трябва да бъдат написани във всеки метод, за да може методът да прави това, което програмистът иска да прави. 6 Класът е готов, сега можете да създавате неговите обекти. - Страхотно! Това е интересна схема. ще го запомня - Трябва да го запомниш, ще ти е от полза. Програмният подход, при който програмата е разделена на обекти, се нарича обектно-ориентирано програмиране ( ООП ). - Java е класически пример за ООП подход, защото в Java всичко е обекти. - Изучаването на Java се състои от две основни задачи: да се научите да пишете свои собствени класове и да се научите да използвате класове на други хора. Днес започваме с най-лесните неща. Ще се научите да пишете прости класове и, разбира се, да създавате техните обекти. Обектите често се наричат ​​екземпляри на класовете. Това са синоними, и двете са правилни. - Схванах го. - За да обобщя, мога да кажа, че класът е минипрограма: набор от данни и функции, които правят нещо с тези данни. Важна характеристика на класовете е възможността за създаване на екземпляри на тези класове (обекти). - За да създадете клас обект, трябва да напишете в codeа «new class_name()» . Старо ниво 05 - 4- Един клас обект има две интересни характеристики: - Първо. Всеки обект на клас съхранява свое собствено копие на променливите на класа.Така че, ако в класа са декларирани променливи x, y и са създадени 10 обекта от този клас, тогава всеки обект има свои собствени променливи. Промяната на променливи на обект не засяга променливите на другия обект. - Второ. Когато се създава нов обект, към него могат да се предават различни параметри. Това са така наречените „начални стойности“. Това е почти като даването на име при раждането. Много обекти не могат да бъдат създадени без предаване на такива параметри. - Разбирам малко. И Howво казахте за променливите на класа? - Всеки обект има свое копие на данните (променливи на класа). Старо ниво 05 - 5

2 Риша говори за пакети

- Хей, Амиго! Сега ви разказвам за пакетите. - Файловете в компютъра са групирани в папки. Класовете в Java (всеки клас е в отделен файл) са групирани по пакети, които са папки на диск. Това не е нищо ново. Но има две забележки. - Първо , «уникално пълно име на клас» е «име на пакет» + «име на клас» . Примери: Старо ниво 05 - 6- Пълното име на класа винаги е уникално! - Много е трудно да се пише дълго име, като например java.util.ArrayList , всеки път. Следователно във вашия code можете да използвате кратки имена на другите класове. Но за това трябва да използвате малко магия. - Каква магия? - Можете да използвате израза «import java.util.ArrayList;» - В началото на класа, веднага след декларирането на пакета, трябва да посочите пълното име на класа ArrayList , използван във вашия code. Да приемем, че използвате класове java.util.ArrayList, sun.generic.ArrayList и com.oracle.ArrayList във вашия code. Можете да посочите един от тях при импортиране (напр. sun.generic.ArrayList;) и да използвате краткото му име. Отнася се само за един клас. - Защо това е толкова сложно? Може ли да има класове с еднакви имена? - Да, в различни пакети може да има класове с едно и също име. Но не можем да импортираме два класа с едно и също име в нашия клас, така че трябва да приложим пълно име към един от тях. - Ето още една аналогия. Имате Бил в екипа си и няма проблем с комуникацията, защото всеки знае кой е. Но ако имаше три законопроекта, тогава ще трябва да използвате пълните им уникални имена, за да ги разграничите. - Второ , по-добре е класовете да се поставят в пакети, а не в основната папка src . Няма проблеми, когато има малко класове, но е много лесно да се объркате, когато има много. Затова винаги създавайте класове само в пакети. Правилото в Java е да давате на класовете и пакетите разбираеми имена. Много компании произвеждат свои библиотеки (набори от класове) и, за да избегнат объркване, наименуват пакетите от тези класове след компанията / уебсайта: Старо ниво 05 - 7

3 Ким показват видео уроци

- Хей, Амиго! Ето няколко видео урока How да създавате класове и пакети:
- Вече го направихме! - Ще го направите хиляди пъти в живота си на робота. Така че свиквайте. А сега трябва да тренирате! Създаване на Java класове Създаване на пакети

4 Ели, създаване на обекти, препратки към обекти

- И така, миналия път научихме часовете. Днес бих искал да ви кажа How да създавате обекти. Много е просто: напишете ключовата дума new и името на класа за обекта, който искаме да създадем: Старо ниво 05 - 8- Но съм го чувал и преди. - Знам, но моля те, слушай. - Когато се създава нов обект, различни параметри могат да бъдат предавани в скоби. Ще го обясня малко по-късно днес. Нека разгледаме класа Cat: Старо ниво 05 - 9- Какви са тези гетери и сетери ? - Променливите, недостъпни от други класове, са обичайна практика в Java. Обикновено променливите, декларирани в клас, имат модификатора private . - За да дадете достъп до частна променлива, трябва да създадете два метода: getи задайте . Целта на метода get е да върне текущата стойност на променливата на този, който я е извикал. Целта на набора от методи е да зададе нова стойност. - И Howъв е смисълът? - Ако не искаме никой да променя стойностите на нашите обектни променливи, можем просто да напишем no method set or да го направим частен . Можете също така да добавите към този метод допълнителна проверка на данните. Ако новата предадена стойност е невалидна, не променяйте нищо. - Това е интересно. - Тъй като може да има много променливи в класа, имената на методите се получават и задаватобикновено включват името на променлива, с която работят. - Ако дадена променлива е наречена fullName , методите трябва да бъдат именувани getFullName и setFullName . И така нататък подобно на него. - Схванах го! Като цяло това е разбираем подход. - Ето няколко примера How да работите с новосъздаден обект: Старо ниво 05 - 10

5 Диего, Задачи за създаване на собствени класове и обекти

- Хей, Амиго! Ето някои задачи за създаване на класове и обекти:
Задачи
1 Създайте клас Cat
Създайте клас Cat. Котката трябва да има своето име (name, String), възраст (age, int), тегло (weight, int) и сила (strength, int).
2 Внедряване на метод борба
Внедряване на метод на булева борба (Cat anotherCat): внедряване на механизъм за борба в зависимост от теглото, възрастта и силата на котките. Създайте зависимост сами. Методът трябва да определи дали текущата котка (обектът, чийто метод за борба е бил извикан) or друга котка е спечелила битката, т.е. връща true, ако текущата котка е спечелила, и false, ако не е спечелила. Трябва да бъде изпълнено следното condition:
if cat1.fight(cat2) == true, then cat2.fight(cat1) == false
3 Гетъри и сетери за класа Dog <
Създаване на клас Dog. Кучето трябва да има име - String name and age - int age.
Създайте гетери и сетери за всички променливи на класа Dog.
4 Създайте три обекта от тип Cat
Създайте три обекта от тип Cat в основния метод и ги попълнете с данни.
Използвайте класа Cat от първата задача. Не създавайте клас Cat.
5 Задръжте три двубоя между котки
Създайте три котки с помощта на класа Cat.
Проведете три битки по двойки между котки.
Не създавайте клас Cat. За битката използвайте метода boolean fight(Cat anotherCat).
Показвайте резултата от всяка битка.

6 Риша говори за инициализация на обект

- Искам да ви разкажа за инициализацията на обекта. Когато се създава обект, е необходимо да се присвоят данни за стартиране на неговите променливи , за да се избегне ситуация, когато се опитате да получите достъп до обект и той няма данни, необходими за правилното функциониране. - Да разгледаме обект от типа File. Минималната необходима информация за file е неговото име. Файл без име е глупост. - Да предположим, че пишете своя собствена version на клас File (например MyFileClass), за да работите с файлове. Каква информация е необходима за всеки обект от този клас? - Името на file, с който ще работи този обект? - Това е вярно. Ето защо добавяме метода initialize() към нашия клас. Ще изглежда така: Старо ниво 05 - 11- Добавихме методаinitialize , за да можете да работите с обект - извикайте методите му. Това може да стане веднага след извикването на метода initialize. Ако не можете да работите с обект, той се нарича невалиден , в противен случай е валиден . Основната цел на метода initialize – е да предаде всички необходими данни на обекта, за да го направи валиден. - Схванах го! - Сега да усложним задачата. Или по-скоро опростете. Зависи How го гледаш. Представете си, че за друг програмист, който ще използва нашия клас, е по-лесно да предаде не пълното име на file, а директория и кратко име на файл. Можем да приложим тази функционалност, като използваме друг метод за инициализация ( Java дава възможност за създаване на множество методи с еднакви имена). Тогава нашият клас ще изглежда така: Старо ниво 05 - 12- Нещо повече, често е необходимо да създадете временно копие на file до текущото. - Можем ли да направим метод за този случай? - Разбира се, вижте това: Старо ниво 05 - 13- И така, мога да направя толкова от тези методи, колкото искам? - В рамките на разумното, разбира се. Но всъщност колкото искате. - А кога е необходимо да се извика метода initialize? - Веднага след създаването на обекта, за да го превърнете във валиден: Старо ниво 05 - 14- А Howъв е този метод getFolder()? - Можете да видите от името му, че този метод е да върне низ, съдържащ името на папката, където се намира нашият файл. Но не сме написали изпълнението му тук, то е само за показ.

7 Диего, Задачи за инициализация на обекти

- Хей, Амиго! Скучно ми е без нашите уроци. Ето някои задачи за инициализация на обекти:
Задачи
1 Създайте клас Приятел
Създайте клас Приятел с три инициализатора (три метода за инициализиране):
- Име
- Име, възраст
- Име, възраст, пол
2 Създайте клас Cat
Създайте клас Cat с пет инициализатора:
- Име
- Име, тегло, възраст
- Име, възраст (стандартно тегло)
- Tagло, цвят, (името, addressът и възрастта са неизвестни, това е алейна котка)
- Tagло, цвят, address (това е домашна котка на някой друг)
Задачата на инициализатора е да направи обект валиден. Например, ако теглото е неизвестно, трябва да посочите няHowво средно тегло. Една котка не може да има ниHowво тегло, също и възраст. Но може да няма име (null). Същото важи и за address - може да бъде нула.
3 Създайте клас Dog
Създайте клас Dog с три инициализатора:
- Име
- Име, височина
- Име, височина, цвят
4 Създайте клас Circle
Създайте клас Circle с три инициализатора:
- centerX, centerY, радиус
- centerX, centerY, радиус, ширина
- centerX, centerY, радиус, ширина, цвят
5 Създайте клас Rectangle
Създайте клас Rectangle. Неговите данни ще бъдат отгоре, отляво, ширина и височина. Напишете за него възможно най-много методи за инициализиране (...)

Примери:
- 4 параметъра трябва да бъдат зададени: ляво, горе, ширина, височина
- ширина/височина не са зададени (и двете са равни на 0)
- височина не са зададени (равно на ширина), създайте квадрат
- създайте копие на друг правоъгълник (подава се в параметрите)

8 Ели говори за конструктори

- Време е да ви разкажа за конструкторите. Много е просто: програмистите изобретиха съкратена нотация за създаване и инициализация на обекти: Старо ниво 05 - 15- Но току-що разбрах тези инициализатори... - Не се разстройвайте. Погледни отблизо. Използването на конструктори е по-удобно и спестява място. - Да, изглежда много по-добре. Но има един въпрос: знам How да напиша метод, инициализиран в класа, но How да напиша конструктор в класа? - Първо, вижте един прост пример: Старо ниво 05 - 16- Много е лесно да декларирате конструктора в класа. Конструкторът е като метода за инициализация, но има две разлики:
  • Името на метода на конструктора е същото като името на класа (instead of инициализиране ).
  • Методът на конструктора няма тип връщане (изобщо не е посочен тип).
- Всъщност това е същият метод за инициализация, но с няколко разлики. Донякъде го разбрах.

9 Диего, Конструктор задачи

- Предполагам, че сте си починали. Глоба. Ето някои задачи за създаване на конструктор:
Задачи
1 Създайте клас Приятел
Създайте клас Приятел с три конструктора:
- Име
- Име, възраст
- Име, възраст, пол
2 Създайте клас Cat
Създайте клас Cat с пет конструктора:
- Име,
- Име, тегло, възраст
- Име, възраст (стандартно тегло)
- Tagло, цвят (име, address и възраст не са известни. Това е алейна котка)
- Tagло, цвят, address (това е домашна котка на някой друг)
Задачата на инициализатора е да направи обект валиден. Например, ако теглото е неизвестно, трябва да посочите няHowво средно тегло. Една котка не може да има ниHowво тегло, също и възраст. Но може да няма име (null). Същото важи и за address - може да бъде нула.
3 Създайте клас Dog
Създайте клас Dog с три конструктора:
- Име
- Име, височина
- Име, височина, цвят
4 Създайте клас Circle
Създайте клас Circle с три конструктора:
- centerX, centerY, радиус
- centerX, centerY, радиус, ширина
- centerX, centerY, radius, width, color
5 Създайте клас Rectangle
Създайте клас Rectangle. Неговите данни ще бъдат отгоре, отляво, ширина и височина. Създайте за него възможно най-много конструктори:

Примери:
- зададени са 4 параметъра: ляво, горе, ширина, височина
- ширината/височината не са зададени (и двете са равни на 0)
- височината не е зададена (равна на ширината), създайте квадрат
- създайте копие на друг правоъгълник (подава се в параметрите)

10 Професор, Класове и конструктори

- Пак съм аз. Нашите лекции са просто страхотни. Няма да ви давам линкове към скучни лекции. Ето линк към страхотни неща! - Още ли си тук? Върви бързо, чети, а аз трябва да отида в лабораторията. CodeGym Лекция 5 Дискусия

11 Хулио

- Хей, Амиго! Аз съм малко изморен. Нека да си починем малко и след това да започнем урока. Намерих нов епизод:

12 Джон Катерици

- Здравей, войнико! - Добро утро, сър! - Имам страхотни новини за вас. Ето задачи за затвърждаване на вашите умения. Правете го всеки ден и бързо ще подобрите уменията си. Задачите са специално проектирани за изпълнение в Intellij IDEA.
Допълнителни задачи за изпълнение в Intellij Idea
1 1. Три класа
1. Създайте клас Котка и Куче по аналогия с класа Патица.
2. Помислете Howво трябва да върне методът toString в класовете Cat и Dog.
3. В метода main създайте два обекта във всеки клас и ги покажете.
4. Обектите от клас Duck се създават и показват.
2 Мъж и жена
1. Създайте публични статични класове Мъж и жена в класа Решение.
2. Класовете трябва да имат полета: име(String), възраст(int), address(String).
3. Създайте конструктори, към които да подадете всички възможни параметри.
4. Използвайте конструктора, за да създадете два обекта от всеки клас с всички данни.
5. Покажете обектите във формат [име + " " + възраст + " " + address].
3 3. Създайте публични статични класове Куче и Котка.
Добавете три полета към всеки клас по ваш избор.
Създавайте предмети за анимационните герои на Том и Джери, колкото си спомняте.

Пример:
Mouse jerryMouse = new Mouse(“Jerry”, 12 (височина, cm), 5 (дължина на опашката, cm))
4 4. Показване на текущата дата
Показване на екрана на текущата дата във форма, подобна на «21 02 2014».
5 5. Прочетете числата от клавиатурата и изчислете общата им сума.
Прочетете числата от клавиатурата и изчислете общата им сума, докато потребителят въведе думата «общо». Покажете на екрана общата сума.
- Тези задачи бяха за зелените. Добавих бонус задачи с по-висока сложност. Само за топ оръжия.
Бонус задачи
1 1. Програмата не се компorра и не стартира. Оправи го.
Задача: Програмата трябва да прочете от клавиатурата две числа и да изведе сумата им.
2 2. Добавете нова функционалност към програмата.
Стара задача: добавете нова функция, която чете от клавиатурата две числа и показва техния минимум.
Нова задача: добавете нова функция, която чете от клавиатурата пет числа и показва техния минимум.
3 3. Разучаване и практикуване на алгоритъм.
Задача: Напишете програма, която
1. чете от конзолата номер N, който е по-голям от нула
2. след това чете N числа от конзолата
3. извежда максимума от въведените N числа.
Коментари
  • Популярен
  • Нов
  • Стар
Трябва да сте влезли, за да оставите коментар
Тази страница все още няма коментари