Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Android SDK: Праграмаванне прыкладання на Java

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Learn Android SDK From Scratch.
Android SDK: User Interaction
Android SDK: App Resources

Belarusian (беларуская мова) translation by Alex Grigorovich (you can also view the original English article)

Наша мэта ў гэтай серыі - даведацца аб распрацоўцы з дапамогай AndroidSDK. Да гэтага часу мы вывучалі інструменты распрацоўкі, вывучалі структуру праекта прыкладання для Android, пачалі ствараць карыстацкі інтэрфейс і ўзаемадзеянне з карыстачом. У гэтым уроку мы разгледзім асноўныя структуры і канцэпцыі мовы Java, якія вам трэба ведаць, каб пачаць распрацоўку прыкладанняў для Android.


Увядзенне

Калі вы ўжо знаёмыя з мовай Java, вы можаце прапусціць гэты падзел. Калі вы знаёмыя трохі ці зусім не знаёмыя з гэтай мовай, у гэтым уроку мы разгледзім, што вам трэба даведацца, каб працягнуць працу з Android. Гэтага ўроку недастаткова для таго, каб навучыць вас Java з нуля, але ён будзе працаваць як дапаможнік для пачатку працы. Вы павінны праходзіць урок дадаткова вывучаючы Java па меры неабходнасці.

Мы не будзем марнаваць занадта шмат часу на дэталі ў гэтым уроку, але калі вы адчуваеце цяжкасці з якім-небудзь паняццем, вывучыце навучальныя дапаможнікі OracleJava. Гэта шырокае кіраўніцтва па мове, даступнае для пачаткоўцаў. Не хвалюйцеся, калі вы адчуеце сябе крыху ашаломленым тым, што мы разгледзім у гэтым уроку, гэта здабудзе большы сэнс пасля таго, як вы пачнеце ўкараняць створаныя структуры ў праекты Android.


1. Сінтаксіс Java

Крок 1

Вы ўжо разгледзелі сінтаксіс Java ў нашым Android-праекце, але для яснасці, давайце пачнем іншы праект. Замест праекта Android на гэты раз мы будзем выкарыстоўваць праект Java, каб вы маглі лёгка бачыць тыя структуры, якія мы выкарыстоўваем. ОткройтеEclipse. Націсніце кнопку «Стварыць». У якое з'явілася майстру пракруціць ўніз да тэчкі Java і разгарніце яе. Выберыце «JavaProject» і націсніце «Далей». Выберыце «JavaProject» і націсніце «Далей».

Java Project

Увядзіце «MyJavaProject» у якасці імя праекта і націсніце «Гатова». Затым Eclipse створыць новы праект у працоўнай вобласці. У Правадыру пакетаў разгарніце новую тэчку праекта. Пстрыкніце правай кнопкай мышы на «src» і выберыце «Стварыць», затым «Класс».  Увядзіце «MyMainClass» у полі «Імя». Усталюеце сцяжок побач з «public static void main» і націсніце «Гатова».

Java Class

Eclipse створыць ваш клас і адкрые яго ў рэдактары. Не звяртайце асаблівай увагі на структуру праекта або на існуючы кантэнт класа, таму што вашы праекты Android будуць па-рознаму структураваныя. Вы можаце выкарыстоўваць гэты праект для працы з вашымі навыкамі Java, прасцей запусціць і пратэставаць код, які вы пішаце тут, чым у дадатку для Android, і вы можаце засяродзіцца на сінтаксісе Java.

Асноўным метадам з'яўляецца асноўная радок «publicstaticvoidmain», якую вы бачыце ў файле класа. Незалежна ад таго, што ўнутры гэтага метаду, гэта будзе выканана, калі праграма запускаецца. Змест метаду - гэта тое, што з'яўляецца паміж фігурнымі дужкамі пасля «public static void main (String [] args)». Магчыма, Eclipse створыць радок «to do» - проста праігнаруйце яе. Стварыце новы радок пасля яе, і мы дадамо туды наш код.

Крок 2

У Java пераменная можа захоўваць значэнне, такое як тэкставы радок або лічба. Калі вы ствараеце або «аб'яўляеце» зменную ў Java, вы павінны пазначыць тып дадзеных ўнутры яе і даць ёй назву. Увядзіце наступнае:

Гэты радок аб'яўляе зменную ў выглядзе цэлага ліку. Мы можам абвясціць зменную і прысвоіць ёй значэнне, пашырыўшы радок:

Цяпер мы можам спасылацца на гэтую зменную, выкарыстоўваючы яе імя. Дадайце наступны радок: напісаўшы значэнне зменнай у выходную кансоль:

Звычайна вы не пішаце зыходныя дадзеныя дляAndroid-прыкладанняў, замест гэтага вы будзеце выкарыстоўваць прадстаўленне LogCat.  Аднак атрыманне зыходных дадзеных такім чынам - зручны спосаб пратэставаць ваш Java-код.

Крок 3

Давайце запусцім прыкладанне. Гэты працэс трохі адрозніваецца для приложенийAndroid, але мы пагаворым пра гэта пазней у гэтай серыі. Выберыце «Запусціць», затым «Запусціць канфігурацыі». Выберыце «Java-дадатак» у спісе злева і націсніце кнопку «Новая настройка запуску» над ім. Eclipse аўтаматычна абярэ ваша новае прыкладанне Java, калі яно адзінае, якое ў вас ёсць. У адваротным выпадку выберыце яго, выкарыстоўваючы кнопку «Агляд».

Java Run Configuration

Націсніце «Запусціць», каб запусціць прыкладанне.  Вы павінны ўбачыць нумар пяць, выпісаны ў Кансолі пад рэдактарам. Вы можаце выкарыстоўваць гэты метад для тэставання кода Java, калі вы яго вывучаеце.

Console Output

Вы можаце запусціць праект, які вы запускалі нядаўна, выкарыстоўваючы кнопку «Запуск» на панэлі інструментаў.

Run Button

Крок 4

Вы будзеце выкарыстоўваць адзін і той жа сінтаксіс кожны раз, калі вы аб'яўляеце зменную ў Java. Каб прысвоіць іншае значэнне зменнай пазней у праграме, вы можаце спасылацца на яе па імені:

Гэта перазапіша існае значэнне. У Java існуе шмат розных тыпаў зменных. Int называецца прымітыўным тыпам, разам з некалькімі іншымі тыпамі лікаў, char для знакаў і boolean, які захоўвае альбо праўдзівае, альбо ілжывае значэнне. Існуюць таксама тып - Аб'ект; мы разгледзім аб'екты пазней.  Асноўным тыпам аб'екта з якім мы пазнаёмімся будзе String, у якім захоўваецца тэкставы радок:

Значэння тэкставай радкі заключаны ў двукоссі. Вы можаце ўключыць іх непасрэдна ў некаторых выпадках, напрыклад:

Дадайце гэты код і запусціце яго, на кансолі адлюструецца: «number:», за якім варта значэнне зменнай.

Крок 5

Вышэй мы ўбачылі аператар прысвойвання «=» - вось некалькі іншых агульных аператараў:

Аператары могуць выкарыстоўвацца як для зменных, так і жорстка устаноўленых лікаў (як паказана вышэй):

Крок 6

Яшчэ адна структура Java, якая важная для Android, - гэта каментар. Вы можаце дадаць каментар двума спосабамі: Вы можаце дадаць каментар двума спосабамі:

Вельмі важна, каб вы привыкликомментировать код, калі пішаце яго, як для сваёй уласнай выгады, а таксама для ўсіх, хто чытае код.


2. Структуры кіравання

Крок 1

Код, які мы дадалі да асноўнага метадзе, выконваецца пры запуску прыкладання Java. Хаця дадатак Android, якое мы стварылі, будзе запушчана незалежна ад таго, што ўтрымліваецца ў метадзе onCreate асноўнай актыўнасці. Кожны радок ўнутры гэтых метадаў выконваецца пасля папярэдняга радка, але паток выканання не заўсёды з'яўляецца лінейным. У Java ёсць шмат кантралюючых структур, таму давайце разгледзім некаторыя з найбольш распаўсюджаных, пачынаючы з умоўных выразаў.

Ўмоўныя сцвярджэнні ўключаюць правядзенне тэстаў для вызначэння патоку выканання. Самая простая структура ў Java - гэта ўмова if.

Гэтыя тэсты вызначаюць, ці больш значэнне зменнай, чым тры. Калі гэта так, радок будзе запісана для вываду. Калі няма, то нічога не будзе выпісана, і апрацоўка проста перамесціцца на наступны радок у праграме. Мы кажам, што тэст «вяртае» сапраўднае або ілжывае значэнне. Праўда і хлусня з'яўляюцца лагічнымі значэннямі.  Мы можам дадаць else, які выконваецца толькі ў тым выпадку, калі if вяртае значэнне false:

Ўмова else выконваецца, калі значэнне роўна тром або менш. Паспрабуйце код з рознымі значэннямі для зменнай у выглядзе цэлага ліку, каб убачыць вынікі тэстаў. Мы таксама можам падключыць некалькі тэстаў:

Кожны тэст выконваецца толькі ў тым выпадку, калі ўсе папярэднія тэсты ў ланцужку вярнуліся з памылкай. Таму для любога ліку выводзіцца толькі адзін радок.  Вы можаце звязаць столькі умоў else if колькі вам трэба. Вы таксама можаце выкарыстоўваць аператары if, прывязаныя да аднаго або некалькіх іншым умовам else if, без канчатковага else.

Мы праверылі, што адно лік большы за другі. Паспрабуйце наступныя варыянты:

Вы можаце выконваць аналагічныя тэсты для іншых тыпаў зменных, уключаючы радка. Каб выканаць адразу некалькі тэстаў, выкарыстоўвайце наступны сінтаксіс:

Сімвалы «&&», вядомыя як аператар «and», азначае, што ўся канструкцыя верне true толькі ў тым выпадку, калі абодва тэсту вяртаюць true. Аператар «or» верне true, калі які-небудзь тэст вяртае true:

Каб згрупаваць код у блок, мы можам выкарыстоўваць фігурныя дужкі - увесь код у дужках выконваецца, калі гэты тэст вяртае true:

Такія дужкі групуюць код у цыклы, метады і класы.

Крок 2

Давайце цяпер зірнем на цыклы. Наступны цыкл for паўтараецца дзесяць разоў, гэта значыць яго змесціва выконваецца дзесяць разоў:

Першае выраз for ініцыялізуе лічыльнік ў выглядзе лікавы зменнай роўнай нулю. Другое выраз з'яўляецца праверкай ўмовы, у тым, што пераменная менш дзесяці. Калі праверка вяртае значениеtrue, змесціва цыклу выконваецца, калі не, то цыкл завершыцца. Як толькі змесціва цыклу выканана, выконваецца трэцяе выраз, павялічваючы значэнне лічыльніка.

Цыкл while выкарыстоўвае трохі іншы сінтаксіс. Наступны прыклад валодае тым жа эфектам, што і цыкл for:

Цыклы могуць утрымліваць некалькі радкоў кода, ўключаць іншыя цыклы.

Крок 3

Мы ўжо разабраліся з асноўным метадам і метадам Android onCreate. Давайце звернем увагу на стварэнне ўласных метадаў. Змесціце наступны метад пасля зачыняе дужкі для асноўнага метаду:

Гэты метад вызначаецца як адкрыты, гэта значыць любы клас у праекце можа выклікаць яго апрацоўку.  Калі гэта «прыватны», ён даступны толькі ўнутры класа (гэта яго ўзровень бачнасці).  Звычайна вам не трэба ўключаць мадыфікатар "static" у вашы першыя прыкладання для Android, таму ігнаруйце яго. Void ўяўляе тып якiя вяртаюцца дадзеных. У гэтым выпадку метад нічога не вяртае. Каб выканаць гэты метад, выклічце яго ў сваім асноўным метадзе:

Запусціце прыкладанне, каб убачыць гэтую функцыю. Зменіце метад, каб вярнуць значэнне:

Зменіце метад, каб вярнуць значэнне:

Вяртаецца значэнне напісана. Метады могуць таксама атрымліваць параметры:

Пры выкліку метаду вы павінны перадаць параметры правільнага тыпу і лічбы:

Метады могуць разбіваць апрацоўку прыкладанняў на лагічныя фрагменты. Яны асабліва карысныя, калі вам трэба выконваць адны і тыя ж задачы больш за адзін раз; вы проста вызначаеце іх у метадзе, а затым выклікаеце яго, калі вам гэта трэба. Калі вы зменіце працэс, вам трэба яго змяніць толькі ў кодзе метаду.


3. Класы і аб'екты

Крок 1

Мы бачылі, як метады могуць выкарыстоўвацца для паўторнага выкарыстання кода і падзелу яго на лагічныя часткі. Класы і аб'екты робяць гэта ў большым маштабе. Вы можаце падзяліць задачы ў дадатку паміж аб'ектамі, прычым кожны аб'ект мае набор абавязкаў, вызначаных яго класам. Гэта падобна на метад, які адказвае за канкрэтную вобласць функцыянальнасці, але аб'ект можа мець некалькі метадаў, а таксама захоўваць дадзеныя.

Уявіце, што вы ствараеце гульню - вы можаце стварыць клас, прызначаны для апрацоўкі дэталяў карыстальніка.  Абярыце пакет прыкладанняў у «src» у Правадыру пакетаў. Пстрыкніце правай кнопкай мышы і выберыце «Стварыць», затым «Класс». Увядзіце «GameUser» у якасці імя класа, пераканайцеся, што сцяжок unchecked / заглушкі метаду ня адзначаны і націсніце «Гатова».  Затым Eclipse адкрые файл класа, які першапачаткова мае ў ім толькі дэкларацыю класа:

Усё, што вы дадаеце, знаходзіцца паміж гэтымі дужкамі (калі вы не дадаеце аператары імпарту, якія пералічаны над гэтым часткай). Ваша приложениеAndroid зверне ўвагу, што ў файлах класа даецца імя пакета вышэй. Ён не пазначаны тут, таму што мы выкарыстоўвалі пакет па змаўчанні.

Крок 2

Унутры класа дадайце пару зменных:

Яны называюцца «зменнымі асобніка», таму што яны вызначаны для кожнага асобніка класа, які мы ствараем. Пасля гэтага дадайце метад канструктара. Гэта тое, што выконваецца, калі аб'ект класа ствараецца:

Канструктар заўсёды мае тое ж імя, што і клас, можа патрабаваць ці не патрабаваць параметры. Канструктар звычайна павінен прысвойваць значэння пераменным асобніка, часта выкарыстоўваючы параметры.

Крок 3

Клас таксама можа вызначаць метады. Дадайце наступны тыповы набор пасля канструктара:

Яны вядомыя як метады get і set, илиgetters і setters, паколькі яны прадастаўляюць код, знешні для класа, з магчымасцю здабывання і ўстаноўкі значэнняў зменных. Праглядзіце ўяўленне Outline ў Eclipse, каб даведацца, як ён можа дапамагчы ў навігацыі па змесціве класа.

New Class Outline

Крок 4

Захавайце новы файл класа. Вярніцеся ў свой асноўны клас, стварыце аб'ект новага класа ў асноўным метадзе:

Мы перадаем параметры, названыя ў канструктару - ключавое слова «new» запусціць канструктар. Цяпер мы можам выкарыстоўваць гэты асобнік класа для доступу да значэнняў дадзеных у ім, выклікаючы яго метады:

Запусціце праграму, каб убачыць, як змяняецца значэнне пасля выкліку агульнадаступных метадаў аб'екта. Вы можаце стварыць некалькі асобнікаў аб'екта, якія будуць кіравацца асобна:


4. Успадкоўванне і інтэрфейсы

Крок 1

Мы бачылі, як клас вызначае сукупнасці налад, якія вы можаце выкарыстоўваць, ствараючы асобнікі аб'ектаў. Гэта тычыцца не толькі ствараюцца вамі класаў, але і існуючых класаў Java і Android, якія вы таксама можаце выкарыстоўваць. Гэта тычыцца не толькі ствараюцца вамі класаў, але і існуючых класаў Java і Android, якія вы таксама можаце выкарыстоўваць. З дапамогай атрымання ў спадчыну вы можаце стварыць клас, які валодае функцыянальнасцю існуючага класа, а таксама дае ўласную апрацоўку. Мы бачылі прыклад у першым праекце Android, які мы стварылі, з асноўным класам Activity.

Адкрыйце гэты клас. У першым радку класа вы ўбачыце, «extendsActivity».  Гэта азначае, што гэты клас з'яўляецца падклас класа ActivityвAndroid. Выкарыстанне класа Activity дазваляе Android апрацоўваць дэталі прадстаўлення экрана карыстачу, выкарыстоўваючы метады, калі экран знаходзіцца ў розных станах (ствараецца, прыпыняецца, зачыняецца і т. Д.). Гэта дазваляе засяродзіцца на унікальных момантах прыкладання, дадаючы код у метады, вызначаныя ў абвяшчэнні класа ActivityвAndroid, і, пры неабходнасці, дадатковыя метады.

Гэта шаблон, які вы часта будзеце выкарыстоўваць в Android, пашыраючы пэўныя класы для агульных мэтаў прыкладанняў. Вы можаце дапоўніць іх сваімі ўласнымі класамі, там дзе гэта неабходна.

Крок 2

Паглядзіце яшчэ раз на першы радок класа Activity. Памятаеце, што мы дадалі код «implementsOnClickListener» для апрацоўкі клікаў у карыстацкім інтэрфейсе. Гэта называецца укараненнем інтэрфэйсу. Інтэрфейс падобны на клас, які вы наследуете пры выкарыстанні «extends», за выключэннем таго, што ў аб'яве інтэрфэйсу проста пералічаныя схемы метадаў. Вы павінны даць рэалізацыю метаду для кожнага з іх. Таму, калі мы ўкаранілі OnClickListener, мы перадалі клас для прадастаўлення метаду onClick, што мы і зрабілі. Вы павінны даць рэалізацыю метаду для кожнага з іх. Пры атрыманні ў спадчыну пашыраюць класы ўспадкуюць рэалізацыі метаду, прадугледжаныя ў аб'яве класа для свайго супер класа (які пашыраецца клас). Вы можаце перавызначыць гэтыя рэалізацыі, калі вам трэба.


Выснова

У гэтым уроку мы выклалі некаторыя істотныя асаблівасці сінтаксісу Java, якія вам трэба зразумець. Існуе яшчэ больш структур і паняццяў, каб азнаёміцца ​​з імі. Калі ў вас няма вопыту ў Java і вы хочаце пераканацца, што ведаеце дастаткова, каб эфектыўна развівацца ў праграмаванні для Android, выкарыстоўвайце падручнікі OracleJava. Тэмы, якія трэба вывучыць, ўключаюць у сябе масівы і аператары switch. Пазней внашей серыі ўрокаў мы разгледзім некаторыя з найбольш распаўсюджаных класаў Android, якія вы, хутчэй за ўсё, будзеце выкарыстоўваць. У наступнай частцы мы разгледзім рэсурсы ў праекце прыкладання для Android.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.