Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 34

Автор Π¨ΠΈΠ»Π΄Ρ‚ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ исходный ΠΊΠΎΠ΄ класса Pwr, написанный с использованиСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова this.class Pwr { double b; int e; double val; Pwr(double base, int exp) { this.b = base; this.e = exp; this.val = 1; if(exp==0) return; for( ; exp>0; expβ€”) this.val = this.val * base; } double get_pwr() { return this.val; }}

На самом Π΄Π΅Π»Π΅ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° Java Π½Π΅ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ класс Pwr ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, добавляя ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… прСимущСств. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя стандартная Ρ„ΠΎΡ€ΠΌΠ° записи Ρ‚Π΅Ρ… ΠΆΠ΅ самых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² выглядит Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Но Π² рядС случаСв ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. НапримСр, синтаксис языка Java Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ этом случаС локальная пСрСмСнная ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ скрываСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ экзСмпляра. А доступ ΠΊ скрытой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this. Π’Π°ΠΊ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ конструктора класса Pwr () синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½, Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ стиля программирования рСкомСндуСтся всС ΠΆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ.Pwr(double b, int e) { // Π—Π΄Π΅ΡΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ссылку // Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ b ΠΈ Π΅, Π° Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, this.b = b; this.e = Π΅; val = 1; if(Π΅==0) return; for( ; Π΅>0; Π΅β€”) val = val * b;}

Π’ Π΄Π°Π½Π½ΠΎΠΉ вСрсии конструктора класса Pwr ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляра, скрывая ΠΈΡ…. А ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ здСсь для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ β€œΡ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒβ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ для самопровСрки ΠΏΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρƒ Π³Π»Π°Π²Ρ‹ 4

Π’ Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ класса ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°?

Как опрСдСляСтся класс?

Чью ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ копию содСрТит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚?

ΠŸΠΎΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ counter класса MyCounter, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Как Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн ΠΌΠ΅Ρ‚ΠΎΠ΄ myMeth, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π° ΠΈ b, Ρ‚ΠΈΠΏΠ° int ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° double?

Как Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

Каким Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ имя конструктора?

КакиС дСйствия выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ β€œΡΠ±ΠΎΡ€ΠΊΠ° мусора” ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ дСйствия ΠΎΠ½Π° выполняСт? Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ finalize()?

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this?

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ конструктор ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²?

Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния, Ρ‚ΠΎ ΠΊΠ°ΠΊ слСдуСт ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°?

Π“Π»Π°Π²Π° 5 Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ…

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ понятия

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ массивах

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ нСрСгулярных массивов

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ синтаксисС объявлСния массивов

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ссылок Π½Π° массивы

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра length

ИспользованиС разновидности for-each Ρ†ΠΈΠΊΠ»Π° for

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ строками

Π£ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ИспользованиС поразрядных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ?

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ возвращаСмся ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Java. Π’ Π½Π΅ΠΉ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚, Π² частности, ΠΎ массивах, классС String, поразрядных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… ΠΈ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ?. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Π° for, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ лишь Π² самых послСдних вСрсиях языка. Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.ΠœΠ°ΡΡΠΈΠ²Ρ‹

Массив прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΎΠ±Ρ‰ΠΈΠΌ для обращСния ΠΊ Π½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ Java массивы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, хотя Ρ‡Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. ΠœΠ°ΡΡΠΈΠ²Ρ‹ слуТат самым Ρ€Π°Π·Π½Ρ‹ΠΌ цСлям, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для объСдинСния связанных вмСстС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, Π² массивС ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ суточныС Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, зарСгистрированныС Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ мСсяца, ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π±ΠΈΡ€ΠΆΠ΅Π²Ρ‹Ρ… курсов ΠΈΠ»ΠΈ ΠΆΠ΅ названия ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ· домашнСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство массива β€” Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊ, Ссли имССтся массив, содСрТащий Π΄ΠΈΠ²ΠΈΠ΄Π΅Π½Π΄Ρ‹, Π²Ρ‹ΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎ ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ Π°ΠΊΡ†ΠΈΠΉ, Ρ‚ΠΎ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π² цикличСскоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам этого массива, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· особого Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ срСдний Π΄ΠΎΡ…ΠΎΠ΄ ΠΎΡ‚ этих Π°ΠΊΡ†ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, массивы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ….

Массивами Π² Java ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρƒ Π½ΠΈΡ… имССтся ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ИмСнно поэтому ΠΈΡ… рассмотрСниС Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π² этой ΠΊΠ½ΠΈΠ³Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ прСдставлСны ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. РСализация массивов Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π΅Ρ‚ ряд сущСствСнных прСимущСств, ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ самым послСдним срСди Π½ΠΈΡ… являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ массивы срСдствами β€œΡΠ±ΠΎΡ€ΠΊΠΈ мусора”.ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив прСдставляСт собой список связанных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠ΅ списки часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. НапримСр, Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ сСти ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ срСдниС ΡƒΡ€ΠΎΠ²Π½ΠΈ достиТСний бСйсбольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Для объявлСния ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ общая Ρ„ΠΎΡ€ΠΌΠ°:Ρ‚ΠΈΠΏ имя_массива[] = new Ρ‚ΠΈΠΏ[Ρ€Π°Π·ΠΌΠ΅Ρ€];

Π³Π΄Π΅ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ элСмСнта массива. Π’ΠΈΠΏ элСмСнта, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ, опрСдСляСт Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ массив. А Ρ€Π°Π·ΠΌΠ΅Ρ€ опрСдСляСт число элСмСнтов массива. Π’ связи с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ массивы Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², созданиС массива происходит Π² Π΄Π²Π° этапа. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ пСрСмСнная, ΡΡΡ‹Π»Π°ΡŽΡ‰Π°ΡΡΡ Π½Π° массив, Π·Π°Ρ‚Π΅ΠΌ выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ для массива, Π° ссылка Π½Π° Π½Π΅Π΅ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ массива. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠ°ΠΌΡΡ‚ΡŒ для массивов Π² Java динамичСски распрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° new.

ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ всС сказанноС Π²Ρ‹ΡˆΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π° создаСтся массив Ρ‚ΠΈΠΏΠ° int, состоящий ΠΈΠ· 10 элСмСнтов, Π° ссылка Π½Π° Π½Π΅Π³ΠΎ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sample:int sample[] = new int[10];

ОбъявлСниС массива происходит Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sample сохраняСтся ссылка Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π²Ρ‹Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ для массива ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ new. Π­Ρ‚ΠΎΠΉ памяти Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ достаточно для размСщСния Π² Π½Π΅ΠΉ 10 элСмСнтов Ρ‚ΠΈΠΏΠ° int.

Как ΠΈ объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ объявлСниС массива ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:int sample [];sample = new int[10];

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС сначала создаСтся пСрСмСнная sample, которая ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅ ссылаСтся Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. А Π·Π°Ρ‚Π΅ΠΌ пСрСмСнная sample ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ссылку Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ массив.

Доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам массива осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСксов. ИндСкс ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ элСмСнта Π² массивС. Π’ Java индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ. Π’Π°ΠΊ, Ссли массив sample содСрТит 10 элСмСнтов, ΠΈΡ… индСксы находятся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 0 Π΄ΠΎ 9. Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива осущСствляСтся ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌ Π΅Π³ΠΎ элСмСнтов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. НапримСр, для доступа ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту массива sample слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ sample [ 0 ], Π° для доступ ΠΊ послСднСму элСмСнту этого массива β€” sample [9]. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² массивС sample ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ числа ΠΎΡ‚ 0 Π΄ΠΎ 9.// ДСмонстрация ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива,class ArrayDemo { public static void main(String args[]) { int sample[] = new int[10]; int i; // ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ с нуля, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. for(i = 0; i < 10; i = i+1) sample[i] = i; for(i =0; i < 10; i = i+1) System.out.println("This is sample[" + i + "] : " + sample [i]); }}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:This is sample[0]: 0This is sample[1]: 1This is sample[2]: 2This is sample[3]: 3This is sample[4]: 4This is sample[5]: 5This is sample[6]: 6This is sample[7]: 7This is sample[8]: 8This is sample[9]: 9

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° массива sample наглядно ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ рисункС.

Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ) - _2.jpg
ΠœΠ°ΡΡΠΈΠ²Ρ‹ часто ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ большоС количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ опрСдСляСтся минимальноС ΠΈ максимальноС значСния ΠΈΠ· всСх, хранящихся Π² массивС nums. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ этого массива ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ for.// НахоТдСниС минимального ΠΈ максимального Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС,class MinMax { public static void main(String args[]) { int nums[] = new int[10]; int min, max; nums[0] = 99; nums[l] = -10; nums[2] = 100123; nums[3] = 18; nums[4] = -978; nums[5] = 5623; nums[6] = 4 63; nums[7] = -9; nums[8] =287; nums[9] = 4 9; min = max = nums[0]; for(int i=l; i < 10; i++) { if(nums[i] < min) min = nums[i]; if(nums[i] > max) max = nums[i]; } System.out.println("min and max: " + min + " " + max); }}