Заочники 2020-2021 / java_zaoch_sem_1
.pdfСодержание |
|
Введение ........................................................................................................................................ |
3 |
Установка и настройка JDK, среды разарботки ........................................................................... |
3 |
Основные конструкции языка Java ........................................................................................ |
5 |
Hello, World! .......................................................................................................................................... |
5 |
Комментарии ........................................................................................................................................ |
5 |
Типы данных ........................................................................................................................................ |
5 |
Переменные........................................................................................................................................... |
7 |
Константы ............................................................................................................................................. |
7 |
Операции (арифметические, логические)....................................................................................... |
7 |
Преобразование и приведение типов ............................................................................................... |
8 |
Строки .................................................................................................................................................... |
9 |
Ввод/вывод в консоль ....................................................................................................................... |
10 |
Ветвления ............................................................................................................................................ |
10 |
Циклы .................................................................................................................................................. |
10 |
Объекты, классы ....................................................................................................................... |
12 |
Пакеты ................................................................................................................................................. |
14 |
Импортирование классов ................................................................................................................. |
14 |
Наследование ............................................................................................................................. |
16 |
Классы, суперклассы и подклассы................................................................................................. |
16 |
Класс Object ........................................................................................................................................ |
16 |
hashCode() и equals() .......................................................................................................................... |
17 |
toString() ............................................................................................................................................... |
17 |
Переопределение методов ................................................................................................................ |
17 |
Абстрактные классы ......................................................................................................................... |
18 |
Модификаторы доступа.................................................................................................................... |
19 |
Интерфейсы ........................................................................................................................................ |
19 |
Enum ............................................................................................................................................ |
20 |
Collections .................................................................................................................................... |
20 |
Исключения................................................................................................................................ |
21 |
Разработка приложений с графическим интерфейсом...................................................... |
23 |
Фреймы ................................................................................................................................................ |
23 |
Java 2D.................................................................................................................................................. |
24 |
1
Основные компоненты Swing.......................................................................................................... |
28 |
Компоновка элементов ..................................................................................................................... |
29 |
Обработка событий ........................................................................................................................... |
29 |
Многопоточность ...................................................................................................................... |
31 |
Состояние потока............................................................................................................................... |
32 |
Синхронизация потоков ................................................................................................................... |
32 |
2
Введение
Java – объектно-ориентировразработанныйязыкпрогр, ммирова ия |
|
|
|||
компанией Sun Microsystemsтеперьееуженесуществует,таккаконабыла( |
|
|
|
||
купленаOracle |
в 2010году |
). Формально, Java являетсянетолькоязыком |
|
|
|
программирования,целойплатформой,котораявключаетсеб |
|
|
|
|
|
непосредственпрограммированияязык ,мощбиблиотую |
|
еку,содержащую |
|||
огромныйобъемкода,пригодндляповтизученияорногосредудял |
|
|
|
|
|
выпроголнения |
рамм,котораяобеспечивбезопасно,нез отвиетсимость |
|
|
||
операционнойсистемыавтоматическуюсборку« мусора». |
|
|
|
|
|
Однойизосновныхособенностейязыка |
|
Java, какужебылосказановыше, |
|
|
|
являетсянезависимостьотоперацисистемы.Этдостигаетсяннойпутем |
|
|
|
|
|
использованиявиртуальмаши.Кодпрограммыннекомпилируетсяой, |
|
|
|
||
интерпретируетсявбайт |
-код,которыйвыполняетсявиртуальмаши, ной |
|
|
||
преобразующейеговнабормашинныхком.Такимобразомнд,программа, |
|
|
|
||
написанная |
Java можетбытьвыполненапрактичес |
килюбой |
|||
операционсист,гдустановленамевиртуальнаяй |
|
Java |
машина( |
Java |
|
Virtual Machine - JVM)Скачать. |
Java машинуможнонаофициальномсайте |
|
|
||
компании Oracle(http://www.oracle.com/technetwork/java/index.html). |
|
УстановкаинастройкаJDK |
,средыразарбо |
тки |
|
Длянаписания,запускаотладкипрограмм,написанных |
|
Java потребуется |
|
JDK(Java Developer Kit),которыйвключаетсебякаксамувиртуальную |
|
||
машину,компилят,таквесьнабнеорбриблход.Скачатьимыхотек |
|
|
|
последнюю |
JVM |
можнопоссылке |
|
http://www.oracle.com/technetwork/java/javase/downloads/index.html .Веськод, |
|||
которыйбудетвстречатьсяпробученияцессе,гарантированноработает |
|
|
|
начинаясJDK 6.0. |
|
|
|
Дляболееудоб |
нойразработиотладпрограммнакиJava |
|
рекомендуется |
исподниизльзоватьследующихразработки.
3
•Eclipse (http://www.eclipse.org/downloads/. Выбрать Eclipse IDE for Java Developers).
•NetBeans (https://netbeans.org/downloads/.Выбрать Java SE).
Все, приведвыше,срразработкинныедыявляютсяабсолютно
бесплатнымиимвнеобходимыйютсьфункционал.
4
Оснконструкциивнязыкае |
Java |
|
Hello, World! |
|
|
Начнемизучениеязыкасклассическогопримера |
– напрограммыисания |
|
“Hello, World!” Далеебудетрассмотренокаксоздаватьновый |
Java проектв |
|
средеразработки |
Eclipse. Созданиепроектовдругихсредахразработки |
|
аналогично. |
|
|
Комментарии |
|
|
Комментариив |
Java, какивбольшинствеязыковпрограммирования, |
|
игнопвырируютсяпрограммыолнении. |
Вязыке Java существуетдва |
|
осноспособавыделенияныхкоммвтексте. нтариев |
|
|
• Двекосыечерты(//)Комментарий. начинсращущасимволамиется// |
|
|
ипродоконцастрокилж. ется |
|
|
System.out.println(“Hello, world!”); |
|
|
// Этокомме,онигнтарийкомпорируется |
илятором. |
|
• Блочныекоммреализуютсянтапомощьюазделителейии/**/. |
|
System.out.println(“Hello, world!”); /*Этоблочныйкомментарий.
Онможетбытьнанестрокколько.*/
Типыданных
ЯзыкJava |
являетсястроготипизиров.Этозначит, кипждойнным |
|
|
переменнойдолженбытьобъявлен. |
Всегов |
Java восемьпримитивныхтипа |
|
данных.Четыреизнихцелочисленные,два |
|
– длядействительныхчисел, |
|
один – символформате |
Unicode ипоследний |
– логическоезначение. |
|
Целочисленныетиспопыдпредставленияьзуются |
|
какположительных, |
|
такиотрицательныхчисел,неимеющихдробнойчасти. |
|
|
|
• int – занимвпамятибайта4 можетхранитьчислаот |
-2147483648 |
||
до2147483647. |
|
|
5
• |
short – занимвпамятибайта2 можетхранитьчислаот |
|
-32768до |
|
|
32767. |
|
|
|
• long – занимаетвпамяти |
8байтиможетхранитьчислаот |
- |
||
|
9223372036854775до922337203685477580708. |
|
|
|
• |
byte – занимаетвпамятиодбайтможетхранитьчислаот |
|
-128до |
|
|
127. |
|
|
|
Вязыке |
Java диапазоныцелочислентиповнезаотмашиныисят,наых |
|
|
|
которвыполняетсяпрограммай.Это |
ущественноупрощаетперенос |
|
||
программысоднойплатформынадругую. |
|
|
||
Типысплавающейточкойпредставляютзначения,имеющиедробнуючасть. |
|
|
||
• float – занимаетвпамятибайта4можетхранитьчислаот |
|
- |
||
|
3,30282347Едо3,30282347Е. |
|
|
|
• |
double – занимаетвпамяти8 |
байтиможетхранитьчислаот |
- |
|
|
1,7976931348623157Едо Е. |
|
|
|
Тип char исподпредсляьзуеиндивидуальныхтавлениясясимвол.Любой |
|
|
||
символ |
Java можнопредставвидекодовойитьницы |
|
Unicode, которую |
|
можновыразитьшестнадцатеричнымчисло |
мвдиапазонеот |
\u0000 до |
||
\uFFFF. |
|
|
|
|
ВJava предусмотнекотоспецсимволы,котреныыебытьрыегутзнакомы |
|
|
||
подругимязыкампрограммирования. |
|
|
•\b – возвратнаоднупозицию.
•\t – табуляция.
•\n – переходнановуюстрочку.
•\r – возвка.реатки
• \” – двойнаякав |
ычка. |
•\’ – одинарнаякавычка.
•\\ - обратнаякосаячерта.
Тип boolean,отвечающийзахранениелогичпере,искихмедваетнных |
|
|
значения: true |
и false. Преобразование переменныхтипа |
boolean в |
целочисленныенаоборотневозможно. |
|
6
Переменные
ВязыкеJava |
каждаяпереимтип.Приеетобъннаяпеременнойвлении |
|
сначукаеезывалатип,затееимяе.Нижетсяприведенонесколько |
|
|
примеровобъявленияпеременных. |
|
|
double price; |
|
|
int age; |
|
|
long timeInMsec; |
|
|
boolean fl; |
|
|
Импеременнадолжначинатьсянылюбогох |
символа Unicode, |
|
являющегосябуквой. |
|
|
Побъявлслепеременужнонияинициализироватьнойспомощью |
|
|
опеприсваиванияатора,посколькуиспользпеременную, онеторойвать |
|
|
присвоеноникакогозначения,нев. зможно |
Например, |
|
int n =10; |
|
|
int v; |
|
|
v = 4; |
|
|
Константы
Вязыке Java дляобозначенияконспотантключевоесловоьзуется final.
final double pi = 3.14;
Ключевоеслово final означает,чтоприсвкак0либозначеитьданнойие
перемеможлишьоднразноймегонятьельзя.
Опеарифметические( ации,логичес |
|
кие) |
Дляобеспесложениярацчен,вычитания,умножй деления |
|
|
языке Java испобычныельзуютсяарифмопетическиерации+ |
- * /. |
|
Операобознача/ целочиияделен,еслиобатнное |
|
аргумента |
являютсяцелымичислами.Впротслучаеэтаопевном |
|
рацияобозначает |
делениечиселплавающейточкой.Остатокотделцчиселлыхния |
|
|
обозначаетсясимволом |
%. |
|
7
Такжевязыке |
Java предусмотренасокрзапбщеннаяинарныхсь |
|
арифмоп.Напримертическихраций,оператор |
|
|
x += 4; |
|
|
эквивалентен |
|
|
x = x + 4; |
|
|
Вязыке Java, какивязыкахСиС++,естьоперацинкрементирования |
|
|
декрементироввычисления:результатевыр жения |
n++ ктекущему |
|
значениюпеременной |
n прибавляетсяединица, |
n-- уменьшает n наединицу. |
Язык Java содержитполныйком отноерацийлект |
шений.Чтобы |
|
проверить равен,следуетиспользтвосимволы==Например.,ватьзначение |
|
|
выраже3==7равноия |
false. |
|
Дляпроверкинеравенстиспользуютсясимволы!=Т,значение.к 3 != 7 |
|
|
равно true. |
|
|
Крто,вязыкегоме |
Java естьобычныеоперации |
< (меньше), > (больше), <= |
(меньшеилиравно),больше>=илиравно(). |
|
|
Также,какивС++,используютсясимволы&& |
|
длогическойяоперации |
«и» ,атакжесимволы |
|| дляобозначениялогическойоперацииили«»Как. |
|
обычно,знаквосклицаниязначаетлогичоперациюотрицанскую |
ия. |
|
Операция && и || задаютвычислениепосокращсхеме,согласнонной |
|
|
которой,еслипервыйэлемеопределяетзначвсвыраженияниего,то |
|
|
остальныеэлементыневычисляются. |
|
|
Преобиприведениеазоватипов
Частовозникаетнеобходимостьпре бразоватьдин |
числовойтипдругой. |
|
Нарис.показаны1 допустимыепреобразования. |
|
|
Еслидвазначенобъединяютсябинарнойоперациейанпример( , n+f |
,где n – |
|
целоечисло,а |
f – чисплавающейточкой |
),топередвыполнением |
оперобопеациирандаеобразовываютсячисл |
аодинаковоготипа. |
|
• Еслихотябыодинизоперандовимееттипdouble, |
второйтоже |
|
преобразовываетсячислотипа |
double. |
8
• Впротивнслучае,еслихотябыодинизмоперандовимееттип |
float, |
|
второйтожепр образовываетсятип |
float. |
|
• Впротивнслучае,еслихотябыодинизмоперандовимееттипlong, |
то |
|
второйтожепр образовываетсячисло |
long. |
|
• Впротивномслучаеобаопе андаеобразовываютсячислатипа |
int. |
|
Приводитьчисловыетипыможобразомявным.Например, |
|
|
double x = 9.997; |
|
|
int n = (int) x; |
|
|
Притакомприведедробнаячастьчислапростоииотбрасывается,.. |
n |
|
будетзапчисаноло |
9. |
|
Строки
Строки Java – этоп следовательностьсимволов |
Unicode. |
|
Вязыке Java нетвстроенноготипадлястрок.Вместоэтогстандартная |
|
|
библиотекаязыкласссодержит |
String. |
Каждаястр,помещеннаякав |
кавычки,представсобойэкземплярассаяет |
|
String. |
String s = “”; // пустаястрока |
|
|
String greeting = “Hello”; |
|
|
Язык Java, какибо |
льшинствоязыковпрогр,даетвозможностьммирования |
|
использоватьзнак+дляобъединенияконка( )двухст.енациирок |
|
String str1 = “Hello, ”; |
|
|
String str2 = “world!”; |
|
|
String message = str1 + str2; // “Hello, world!” |
|
|
Вклассе |
String отсутствуютмет,которыеды |
позволялибыизменить |
символысуществующейстроке.
Дляполученияинформациивсехдоступныхметработесодастроками следуетобракофидокументациитьсяциальной.
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html
9
В/выводконсоль
Какужерассматрранее,длявыводаинформациивалось |
наэкранна |
|
стандауствыводаройствотнконсольное.е. ( окно)можно |
|
|
воспользоватьсяметодомSystem.out.println() |
. Чтениеизстандартного« |
|
входнпот» окаго |
System.in |
нетакпросто.Длятого,чтобырганизовать |
чтеинформиесконсоли,вамсоздцдои |
|
атьобъект Scanner исвязатьего |
состандарвходнымпотоком |
|
System.in. |
Scanner in = new Scanner(System.in); |
||
String name = in.nextLine(); |
Ветвления
Услооператорвязныкей |
Java имеслевиддующийт: |
if (условие)оператор |
|
Условиедолжноуказыватьсяскобках. |
Например, |
if (n > m) { |
|
System.out.println(«n bigger then m»); |
|
} else { |
|
System.out.println(«m bigger then n»); |
|
} |
|
Циклы
Вязыке Java существуетстандараборциклов. ный |
|
|
Цикл while |
обеспечиввыполнениевыр(аженияет |
лигруоператоровпы, |
составляющихбл)дтехпорк,покауслоравноие |
true. |
|
while (n < 10) { |
|
|
|
n++; |
|
} |
|
|
Условиецикла |
while проверяетсясамомначале.След, овательнозможна |
|
ситуация,прикот,содержащийсядройвблокенебудетвыполнен |
|
|
никогда.Еслив |
ыхотите,чтобыблоквыпхобыодлнтяраз,проверкуинлся |
|
10