Wikiknjiga "Filozofija Jave". Wikiknjiga "Filozofija Java" Uvod v predmete


Če želite spremeniti privzeti dokument, ročno uredite datoteko "blank.fb2".

Predgovor 13

Java SE5 in SE6 14

hvala 14

1. poglavje: Uvod v predmete 17

Razvoj abstrakcije 18

Objekt ima vmesnik 20

Objekt nudi storitve 22

Skrita izvedba 23

Ponovna uporaba implementacije 24

Dedovanje 25

Zamenljivi objekti in polimorfizem 29

Enokorenska hierarhija 33

Zabojniki 33

Parametrizirani tipi 35

Nastanek, uporaba predmetov in njihova življenjska doba 36

Obravnava izjem: obravnavanje napak 38

Vzporedna izvedba 38

Java in internet 39

Poglavje 2. Vse je predmet 48

Vsi objekti morajo biti izrecno ustvarjeni 49

Predmetov nikoli ni treba izbrisati 53

Ustvarjanje novih tipov podatkov 54

Metode, argumenti in povratne vrednosti ​​56

Ustvarjanje programa Java 58

Statična ključna beseda 60

Naš prvi program Java 61

Komentarji in vgrajena dokumentacija 64

Slog oblikovanja programa 70

Poglavje 3. Operaterji 71

Preprosti ukazi za tiskanje 71

Operaterji Java 72

Literali 82

Javi manjka sizeof() 92

Povzetek 100

Poglavje 4. Nadzorne strukture 101

Sintaksa foreach 105

prekini in nadaljuj 108

Slab ukaz goto 109

Povzetek 115

Poglavje 5: Inicializacija in prekinitev 116

Konstruktor zagotavlja inicializacijo 116

Preobremenitev metode 118

Čiščenje: finalizacija in zbiranje smeti 130

Inicializacija članov razreda 137

Inicializacija s konstruktorjem 140

Inicializacija nizov 146

Povzetek 151

Poglavje 6. Nadzor dostopa 152

Paket kot knjižnični modul 153

Specifikatorji dostopa do Java 159

Vmesnik in izvedba 163

Dostop do 164 razredov

Povzetek 167

Poglavje 7: Ponovna uporaba razredov 169

Sintaksa sestave 170

Sintaksa dedovanja 172

Delegacija 176

Kombinacija sestave in dedovanja 178

Sestava proti dedovanju 184

Pretvorba tipa navzgor 186

Končna ključna beseda 188

Povzetek 197

Poglavje 8. Polimorfizem 198

Spet o preobrazbi navzgor. . . > 199

Značilnosti 201

Konstruktorji in polimorfizem 208

Kovarianca vrnjenega tipa 216

Razvoj z dedovanjem 217

Povzetek 220

Poglavje 9. Vmesniki 221

Abstraktni razredi in metode 221

Vmesniki 224

Ločevanje vmesnika od izvedbe 227

Razširitev vmesnika z dedovanjem 233

Vmesniki kot sredstvo prilagajanja 236

Ugnezdeni vmesniki 239

Vmesniki in tovarne 242

Povzetek 244

Poglavje 10. Notranji razredi 245

Ustvarjanje notranjih razredov 245

Komunikacija z zunanjim razredom 246

Konstrukcije.ta in.nova 248

Notranji razredi in pretvorba navzgor 249

Neimenovani notranji razredi 253

Notranji razredi: zakaj? 261

Dedovanje iz notranjih razredov 272

Ali je mogoče preglasiti notranji razred? 272

Lokalni notranji razredi 274

Povzetek 276

Poglavje 11. Zbirke predmetov 277

Parametrirani in tipizirani vsebniki 277

Osnovni pojmi 280

Dodajanje skupin elementov 281

Iteratorji 288

Komplet 294

Čakalna vrsta 298

PriorityQueue 299

Zbirka in iterator 301

Metoda-adapter idiom 306

Povzetek 309

Poglavje 12. Obravnava napak in izjem 310

Glavne izjeme 310

Lovljenje izjem 312

Ustvarjanje lastnih izjem 314

Specifikacije izjem 319

Lovljenje poljubnih izjem 320

Standardne izjeme Java 328

Zaključek s končno 330

Uporaba končno z vrnitvijo 334

Omejitve pri uporabi izjem 336

Konstruktorji 339

Prepoznavanje izjem 343

Alternativne rešitve 344

Povzetek 351

Poglavje 13 Informacije o vrsti 352

Potreba po sklepanju dinamičnega tipa (RTTI) 352

Registracija tovarn 372

Odsev: Informacije o dinamičnem razredu 376

Dinamični posredniki 380

Objekti z nedefiniranim stanjem 384

Vmesniki in informacije o vrsti 390

Povzetek 394

Poglavje 14. Parametriranje 397

Enostavna parametrizacija 398

Parametrirani vmesniki 404

Parametrizirane metode 407

Gradnja kompleksnih modelov 419

Omejitve 437

Metaznaki 440

Povzetek 452

Poglavje 15. Nizi 454

Lastnosti 454 nizov

Niz kot objekt 456

Vrni niz 458

Večdimenzionalni nizi 460

Nizi in parametrizacija 463

Ustvarjanje testnih podatkov 465

Ustvarjanje nizov z uporabo generatorjev 470

Arrays 474 Komplet podpornih orodij

Povzetek 482

Poglavje 16: V/I sistem Java 483

Datoteka razreda 484

Vhod in izhod 489

Dodajanje atributov in vmesnikov 491

Razredi bralca in pisca 494

RandomAccessFile: sama po sebi 497

Tipična uporaba V/I tokov 498

Bralniki in zapisovalci datotek 505

Standardni 507 V/I

Nov V/I (nio) 510

Stiskanje podatkov 531

Serializacija objekta 536

Nastavitve 553

Povzetek 555

Poglavje 17. Vzporedna izvedba 557

Nit 559 razred

Umetniki 561

Skupna raba virov 578

Komunikacija med nitmi 598

Zastoj 602

Nove komponente knjižnice 607

CountDownLatch 607

Ciklična pregrada 609

PriorityBlockingQueue 614

Semaforji 619

Modeliranje 624

Povzetek 629

Abecedno kazalo 631

Uvod v predmete

Naravo seciramo, jo pretvarjamo v koncepte in jim pripisujemo pomen na način, kot to počnemo na mnogo načinov, ker smo vsi udeleženci dogovora, ki velja v družbi, ki jo veže govor, in ki je zapisan v strukturi jezika. . Sploh ne moremo komunicirati, razen če se strinjamo z organizacijo in klasifikacijo podatkov, določeno s to pogodbo.

Benjamin Lee Worf (1897-1941)

Pojav računalniške revolucije dolgujemo stroju. Zato se naši programski jeziki trudijo biti bližje temu stroju.

Toda hkrati računalniki niso toliko mehanizmi, kot so sredstva za širitev misli (»kolesa za um«, kot rad reče Steve Jobe) in drugo sredstvo za samoizražanje. Posledično se programska orodja vse manj nagibajo k strojem in bolj k našemu umu, pa tudi drugim oblikam izražanja človeških teženj, kot so literatura, slikarstvo, kiparstvo, animacija in kinematografija. Objektno usmerjeno programiranje (OOP) je del tega, da računalnik postane sredstvo samoizražanja.

To poglavje vas bo seznanilo z osnovami OOP, vključno z razpravo o osnovnih tehnikah razvoja programov. Ta in knjiga na splošno predpostavlja, da imate izkušnje s programiranjem v proceduralnem jeziku, ne nujno v C. Če menite, da vam pred branjem te knjige primanjkuje znanja o programiranju in sintaksi C, izkoristite multimedijski seminar Thinking in C. ki jih lahko prenesete s spletne strani

Najverjetneje se ne bom zmotil, če domnevam, da je večina tistih, ki so študirali Javo, to začela s pomočjo slavne knjige Brucea Eckela: "Razmišljanje v Javi", v ruski izdaji znan kot "Java filozofija". Na žalost je najbolj razširjena elektronska različica (v ruščini) 2. izdaja te knjige, ki temelji na različici Jave 1.1, ki je že zdavnaj izgubila pomen. Novosti, ki so se pojavile v zaporednih različicah Jave (in še posebej v Javi SE5), so bile zelo pomembne, kar je privedlo do velike revizije knjige v njeni četrti izdaji (katere prevod je bil objavljen v ruščini). Vendar v elektronski obliki, ki je lahko berljiva (in kar je najpomembnejše - za hitro iskanje), ruska različica te publikacije ni obstajala. Zato sem se odločil zapolniti to vrzel in izdelati popolno različico te priljubljene knjige v formatu Wikibook. Verjamem, da bodo te informacije zanimive in uporabne ne samo za učence jezikov, ampak tudi za vse, ki se ukvarjajo z Javo, zaradi ogromnega števila odličnih primerov, ki ponazarjajo skoraj vse vidike programiranja v tem jeziku. Še posebej, ko gre za redko uporabljene funkcije Java.

Wikiknjige "Java filozofija" nahaja se na:

"Pomlad v akciji"

Knjige iz serije "..... v akciji"(običajno v formatu PDF in običajno v angleščini) so v določenih krogih zasluženo priljubljeni :) Med njimi so tudi obsežni Talmudi, kot npr. "JSTL v akciji"(lahko berljiva in z zmernim znanjem angleščine, a primerna za vlogo dobrega referenčnega učbenika na temo), in skromnejše obrti, kot je npr. "Struts v akciji"("ni vse zlato ..."). Knjiga "Pomlad v akciji" na tem seznamu je še vedno iz kategorije "težkih" in v vseh pomenih besede. Verjetno ga ni enostavno brati brez tekoče angleščine. In bistvo verjetno ni v kompleksnosti predstavljenega gradiva (ni zapleteno), ampak v tem, da je izpadlo preveč “angleško-umetniško” ali kaj podobnega ... Polno liričnih stranpoti, fraz, besednih iger in drugih bla bla bla, jezikovnih avtorjev, hitro spremeni branje te referenčne knjige (v izvirnem jeziku) v dolgočasen proces. Po drugi strani pa vam omogoča, da ugotovite, kaj je beseda "žrebanje"(običajno "risati") se lahko uporablja v pomenu "izvleči iz" (lit. - "vleči, povleči"). Kot rezultat (ob upoštevanju splošnega sloga predstavitve, sprejetega v knjigi) razumeti natančen pomen besedne zveze, kot so: "... Pomlad narišite te podatke ...", je lahko hkrati težko in izjemno potrebno. Zato se bodo morali bralci poglavij, ki jih nisem prevedel, spotoma sami odločiti, kaj so avtorji v takšnih primerih želeli: poetično izražanje o nastanku (posnetku) spisa ali hudomušno govoriti o njegovem branju.

To knjigo sem pretvoril iz PDF v Wikibook kot hitro referenco za osebno uporabo. Zato prevod ni totalen, ampak le na mestih, za katera je bilo dovolj navdušenja. Preostala poglavja so bila preprosto predstavljena v obliki, primerni za hitro iskanje. Objavljeno je, VSE v obliki - "kot je", in kakovosti ruskega besedila ni treba kriviti ... Nisem profesionalni prevajalec in nisem imel literarnega urednika. Morda bom koga razočaral, ker nekaterih mest in poglavij knjige nisem prevedel (in jih niti ne nameravam prevesti), ampak sem jo moral pustiti v dediščino za prihodnje generacije

Wikiknjige "Pomlad v akciji " nahaja se na:

Marca lani sem se prijavil v podružnico velikega mednarodnega podjetja v Samari (ja, arogance in ambicije imam na pretek že od otroštva). Takrat sem poznal html, css, java, javascript (osnove), pascal, visualbasic6, mysql queries, php, splošna predstavitev: c++. Jave sploh nisem poznal. Ponudili so mi delo oblikovalca postavitev, a sem ga zavrnil. Samo programer! Nato so dali seznam:

Bruce Eckel Thinking in Java (ruski prevod 2. izdaje ali izvirnik 4. - preberite oboje)
-Steve McConnell - popolna koda.
-Gang of Four - Oblikovanje vzorca. (to je skoraj ABC OOP)
- čim bolj jasno razumeti razliko med j2se in j2ee.

decembra se je pojavila potreba po delu. dobil službo v majhnem spletnem studiu Samara. Takoj je bilo jasno, da gre za prevarante, vendar sem potreboval kakršno koli delo, ki bi ga lahko pokazal bodočim delodajalcem. Plačali niso (čeprav so bili vsi obljubljeni na ušesa), so pa kodo spravili v standarde dizajna, predvsem pa so nas naučili, kje iskati in kaj iskati v primeru napak, kakšne malenkosti so enostavno zgrešiti.

Poleg zgornje literature sem opravil tečaj intuit (zdaj razumem, da je smešen po obsegu, ampak načeloma so osnove tam)

Konec februarja sem ponovno poslal življenjepis in prejel vabilo na razgovor. Vseh intervjujev je bilo 6 in so trajali 1,5 meseca. Dva sta potekala preko video povezave z Moskvo. Celotna slika je spominjala na film "Pridi jutri". A na koncu sem dobil ponudbo za službo. Pogodba je bila sestavljena za krajši delovni čas, ker... Takrat še nisem imel diplome. Prejšnji mesec sem prejela diplomo in podaljšala pogodbo za polni delovni čas.

Trenutni položaj: Soft Engineer. Plača je več kot zadovoljiva. Včeraj so ga v zvezi s prehodom na polni delovni čas dvignili za 30 %.

Tudi v tisti pokvarjeni pisarni so prosili za primere dela. Predstavil sem delo, ki sem ga opravljal kot svobodnjak. Tudi dela v drugih jezikih so vedno veliko boljša kot brez dela.

Ps: Modra diploma iz FIZIKE. Sem popolnoma samouk, tako da je vse v tvojih rokah. Angleščino imam samo v brezplačni šoli (7 ur na teden). čeprav ga Američan, ki je prišel k nam med potovanjem po svetu, ne pozna dobro. Zaradi njegovega naglasa sem razumel komaj polovico. vendar to v mojem oddelku ni tako kritično. Vsa dokumentacija je v angleščini - naučili se je boste, tudi če je niste znali)))))

Posebna zahvala temu forumu. Pravzaprav sem študiral tukaj- vsak dan sem preučeval vse teme, na katere sem naletel)

PROGRAMERSKA KNJIŽNICA

Bruce Eckel

4. izdaja

(^PPTER

Moskva - Sankt Peterburg - Nižni Novgorod - Voronež Rostov na Donu - Jekaterinburg - Samara - Novosibirsk Kijev - Harkov - Minsk

BBK 32.973 2-018.1

Ekel B.

E38 Javanska filozofija. Programerjeva knjižnica. 4. izd. - St. Petersburg: Peter, 2009. - 640 e.: ilustr. - (Serija "Programerjeva knjižnica").

ISBN 978-5-388-00003-3

Jave ne moremo razumeti tako, da nanjo gledamo le kot na zbirko nekaterih značilnosti - naloge tega jezika je treba razumeti kot posebne naloge programiranja kot celote. Knjiga r3ia govori o problemih programiranja: zakaj so postali problemi in kakšen pristop uporablja Java za njihovo reševanje. Zato so značilnosti jezika, obravnavane v vsakem poglavju, neločljivo povezane s tem, kako se uporabljajo za reševanje določenih problemov.

Ta knjiga, ki je v izvirniku doživela več kot en ponatis, velja za enega najboljših učbenikov za programerje Java, zahvaljujoč globoki in resnično filozofski predstavitvi zapletenosti jezika.

BBK 32.973.2-018.1 UDK 004.3

Pravice za objavo so bile pridobljene na podlagi pogodbe s Prentice Hall PTR.

Vse pravice pridržane. Nobenega dela te knjige ni dovoljeno reproducirati v nobeni obliki brez pisnega dovoljenja imetnikov avtorskih pravic.

Informacije v tej knjigi so bile pridobljene iz virov, ki jih založnik šteje za zanesljive. Ob upoštevanju morebitnih človeških ali tehničnih napak pa založnik ne more jamčiti za absolutno točnost in popolnost navedenih podatkov in ne odgovarja za morebitne napake, povezane z uporabo knjige.

ISBN 978-0131872486 (angleščina) © Prentice Hall PTR, 2006

ISBN 978-5-388-00003-3 © Prevod v ruščino: Peter Press LLC, 2009

© Izdaja v ruščini, oblikoval Peter Press LLC, 2009

Predgovor............................13

Java SE5 in SE6.....................................14

Zahvala.....................................14

1. poglavje: Uvod v objekte.....................................17

Razvoj abstrakcije.....................................18

Objekt ima vmesnik.....................20

Objekt opravlja storitve............................22

Skrita izvedba.....................................23

Ponovna uporaba implementacije.....................................24

Dedovanje.....................................25

Zamenljivi objekti in polimorfizem......29

Enokorenska hierarhija.....................................33

Posode.....................................33

Parametrizirani tipi.....................35

Nastanek, uporaba predmetov in njihova življenjska doba................................36

Obravnava izjem: obravnavanje napak ................................38

Vzporedna izvedba.....................................38

Java in internet.....................................39

Povzetek.....................................47

Poglavje 2. Vse je predmet...................48

Vsi objekti morajo biti ustvarjeni eksplicitno.................49

Predmetov nikoli ni treba izbrisati......53

Ustvarjanje novih tipov podatkov ............................54

Metode, argumenti in povratne vrednosti 56

Ustvarjanje programa Java.....................58

Statična ključna beseda 60

Naš prvi program Java......61

Komentarji in vgrajena dokumentacija................................64

Slog oblikovanja programa.....................70

Povzetek.....................................70

Poglavje 3. Operaterji............................71

Preprosti ukazi za tiskanje.....................................71

Operaterji Java.....................................72

Literali.....................................82

Javi manjka sizeof()................................92

Povzetek.....................................100

Poglavje 4. Nadzorne strukture..................101

sintaksa foreach.....................................105

vrnitev, .....................107

prekini in nadaljuj............................108

Napačen ukaz goto ........................109

Povzetek.....................................115

Poglavje 5. Inicializacija in prekinitev.....................116

Konstruktor zagotavlja inicializacijo......116

Preobremenitev metode.....................................118

Čiščenje: dokončanje in zbiranje smeti......130

Inicializacija članov razreda.....................137

Inicializacija s konstruktorjem.................................140

Inicializacija matrik............................146

Povzetek.....................................151

Poglavje 6. Nadzor dostopa......152

Paket kot knjižnični modul.....................................153

Specifikatorji dostopa do Java.....................159

Vmesnik in izvedba............................163

Dostop do predavanj.....................164

Povzetek.....................................167

7. poglavje: Ponovna uporaba razredov......169

Skladnja sestave.....................170

Sintaksa dedovanja.................................172

Delegacija.....................................176

Kombinacija sestave in dedovanja......178

Sestava proti dedovanju.................................184

zaščiten.....................................185

Pretvorba tipa navzgor.................................186

Končna ključna beseda.....................................188

Povzetek.....................................197

Poglavje 8. Polimorfizem.....................198

Spet o preobrazbi navzgor. . . >............199

Značilnosti.....................................201

Konstruktorji in polimorfizem.....................................208

Kovarianca vrnjenega tipa......216

Oblikovanje z dedovanjem............................217

Povzetek.....................................220

Poglavje 9. Vmesniki.....................................221

Abstraktni razredi in metode.....................................221

Vmesniki.....................................224

Ločevanje vmesnika od izvedbe......227

Razširitev vmesnika z dedovanjem......233

Vmesniki kot sredstvo prilagajanja...................236

Ugnezdeni vmesniki.....................239

Vmesniki in tovarne............................242

Povzetek.....................................244

Poglavje 10. Notranji razredi..................245

Ustvarjanje notranjih razredov.................................245

Komunikacija z zunanjim razredom.....................................246

Konstrukcije.ta in.nova........................248

Notranji razredi in pretvorba navzgor......249

Neimenovani notranji razredi.................................253

Notranji razredi: zakaj?............................261

Dedovanje notranjih razredov...................272

Ali je mogoče preglasiti notranji razred?......272

Lokalni notranji razredi.....................................274

Povzetek.....................................276

Poglavje 11. Zbirke predmetov.....................................277

Parametrirani in tipizirani vsebniki ............................277

Osnovni pojmi............................280

Dodajanje skupin elementov.....................281

Seznam...................................285

Iteratorji.....................................288

LinkedList.....................................291

Sklad.................................292

Veliko.....................................294

Zemljevid...................................296

Čakalna vrsta.....................................298

PriorityQueue.....................................299

Zbirka in iterator.....................301

Idiom »prilagojevalnik metode« .................................306

Povzetek.....................................309

Poglavje 12. Obravnava napak in izjem......310

Glavne izjeme.....................................310

Lovljenje izjem............................312

Ustvarjanje lastnih izjem............................314

Specifikacije izjeme.....................................319

Lovljenje poljubnih izjem............................................320

Standardne izjeme Jave.....................328

Dokončanje s končno.....................................330

Uporaba končno z vrnitvijo............................334

Omejitve pri uporabi izjem......336

Oblikovalci.................................339

Prepoznavanje izjem............................343

Alternativne rešitve............................344

Povzetek.....................................351

Poglavje 13. Podatki o vrsti.....................................352

Potreba po dinamičnem sklepanju tipov (RTTI) ........352

Registracija tovarn............................372

Razmislek: informacije o dinamični učilnici......376

Dinamični posredniki............................380

Objekti z nedoločenim stanjem......384

Vmesniki in informacije o tipu.....................................390

Povzetek.....................................394

Poglavje 14. Parametriranje.....................................397

Enostavna nastavitev parametrov.....................398

Parametrirani vmesniki.....................................404

Parametrizirane metode............................407

Gradnja kompleksnih modelov.....................................419

Omejitve.....................................437

Metaznaki.....................................440

Povzetek.....................................452

Poglavje 15. Nizi............................454

Značilnosti nizov............................454

Matrika kot objekt............................456

Vrnitev matrike............................458

Večdimenzionalni nizi........................460

Nizi in parametrizacija.....................463

Ustvarjanje testnih podatkov.....................465

Ustvarjanje nizov z generatorji......470

Pomožna orodja za nize......474

Povzetek.....................................482

Poglavje 16. V/I sistem Java......483

Datotečni razred.....................................484

Vhod in izhod................................489

Dodajanje atributov in vmesnikov......491

Razredi bralca in pisca............................494

RandomAccessFile: samostojno.....................................497

Običajna uporaba V/I tokov......498

Bralniki in zapisovalci datotek.................................505