Java-programmeertaal. De Java-programmeertaal: waar te beginnen met leren. Waar wordt Java toegepast?

Laatste update: 26-09-2018

Tegenwoordig is Java een van de meest wijdverbreide en populaire programmeertalen. De eerste versie van de taal verscheen in 1996 in de ingewanden van Sun Microsystems, dat later werd geabsorbeerd door Oracle. Java is bedacht als een universele programmeertaal die voor verschillende soorten taken kan worden gebruikt. En inmiddels heeft de Java-taal een lange weg afgelegd, er zijn veel verschillende versies gepubliceerd. De huidige versie is Java 11, die in september 2018 is uitgebracht. En Java is geëvolueerd van slechts een universele taal tot een heel platform en ecosysteem dat verschillende technologieën samenbrengt die worden gebruikt voor een reeks taken: van het maken van desktoptoepassingen tot het schrijven van grote webportals en -services. Daarnaast wordt de Java-taal actief gebruikt om software te maken voor een aantal apparaten: gewone pc's, tablets, smartphones en mobiele telefoons, en zelfs huishoudelijke apparaten. Het volstaat om de populariteit van het mobiele Android-besturingssysteem in herinnering te brengen, waarvoor de meeste programma's in Java zijn geschreven.

Java-functies

Een belangrijk kenmerk van de Java-taal is dat de code eerst wordt vertaald in een speciale platformonafhankelijke bytecode. En dan wordt deze bytecode uitgevoerd door de JVM (Java Virtual Machine) virtuele machine. In dit opzicht verschilt Java van standaard geïnterpreteerde talen zoals PHP of Perl, waarvan de code direct door de interpreter wordt uitgevoerd. Tegelijkertijd is Java geen puur gecompileerde taal zoals C of C++.

Deze architectuur zorgt voor cross-platform en hardwareportabiliteit van Java-programma's, zodat dergelijke programma's op verschillende platforms kunnen worden uitgevoerd - Windows, Linux, Mac OS, enz. zonder hercompilatie. Elk platform kan zijn eigen implementatie van de JVM hebben, maar elk van hen kan dezelfde code uitvoeren.

Java is een taal met een C-achtige syntax en ligt in dit opzicht dicht bij C/C++ en C#. Daarom, als u bekend bent met een van deze talen, zal het beheersen van Java gemakkelijker zijn.

Een ander belangrijk kenmerk van Java is dat het automatische garbagecollection ondersteunt. En dit betekent dat u het geheugen van eerder gebruikte objecten niet handmatig hoeft vrij te geven, zoals in C ++, omdat de vuilnisophaler dit automatisch voor u doet.

Java is een objectgeoriënteerde taal. Het ondersteunt polymorfisme, overerving, statisch typen. De objectgeoriënteerde benadering stelt ons in staat om de problemen van het bouwen van grote, maar tegelijkertijd flexibele, schaalbare en uitbreidbare applicaties op te lossen.

Java-installatie

Om Java-programma's te laten werken, moet de JRE (Java Runtime Environment) op de doelcomputer zijn geïnstalleerd. De JRE vertegenwoordigt een minimale implementatie van een virtuele machine en een klassenbibliotheek. Daarom, als we programma's willen uitvoeren, moeten we de JRE installeren. Elk specifiek platform heeft zijn eigen JRE-versie.

Omdat we echter niet alleen programma's gaan uitvoeren, maar ook ontwikkelen, hebben we een speciale JDK-ontwikkelkit (Java Development Kit) nodig. De JDK bevat al de JRE en bevat ook een aantal extra programma's en hulpprogramma's, met name de Java-compiler.

U kunt de juiste versie van de JDK downloaden en installeren vanaf de officiële Oracle-website: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Download dus vanaf het hierboven genoemde adres het JDK-installatieprogramma voor de nieuwste versie van Java.

Vervolgens worden we doorgestuurd naar een pagina waar we de versie voor het doel-besturingssysteem moeten selecteren - Windows, MacOS of Linux:

Voor elk besturingssysteem zijn er twee opties om te downloaden: als installatieprogramma of als archief dat niet geïnstalleerd hoeft te worden. Mijn besturingssysteem is bijvoorbeeld Windows, dus ik download het bestand jdk_11_windows-x64_bin.exe, dat het installatieprogramma vertegenwoordigt.

Voer na het downloaden het installatieprogramma uit:

Laat alle opties standaard staan ​​en klik op Volgende om de installatie te voltooien.

Nadat de installatie van de JDK is voltooid, zien we het volgende venster:

Laten we dus, na het installeren van de JDK, het eerste Java-programma maken.

Een Java-bronbestand is een tekstbestand dat een of meer klassedefinities bevat. De Java-vertaler gaat ervan uit,

dat de broncode van programma's is opgeslagen in bestanden met Java-extensies. De code die tijdens het vertaalproces voor elke klasse wordt verkregen, wordt in een apart uitvoerbestand geschreven, waarbij de naam samenvalt met de naam van de klasse en met de klasse-extensie.

Allereerst zullen we in dit hoofdstuk het canonieke "Hello World"-programma schrijven, uitzenden en uitvoeren. Daarna zullen we kijken naar alle essentiële lexicale items die de Java-vertaler accepteert: spaties, opmerkingen, trefwoorden, identifiers, letterlijke waarden, operators en scheidingstekens. Aan het einde van het hoofdstuk heb je genoeg informatie om zelf door een goed Java-programma te navigeren.

Dus hier is je eerste Java-programma

:

klasse HalloWereld(

Systeem. uit. println("Hallo wereld");

Om met de voorbeelden in het boek te kunnen werken, moet u over het netwerk van Sun Microsystems gaan en de Java Developers Kit installeren - een pakket voor het ontwikkelen van Java-toepassingen (

http://java.sun.com/products/jdk ). Volledige beschrijving van de pakkethulpprogramma's jdk-in Bijlage 1 .

De Java-taal vereist dat alle programmacode wordt ingesloten in benoemde klassen. De bovenstaande voorbeeldtekst moet naar het bestand HelloWorld.java worden geschreven. Zorg ervoor dat u controleert of de hoofdletters in de bestandsnaam hetzelfde zijn in de naam van de klasse die het bevat. Om dit voorbeeld te vertalen, moet u de Java-vertaler - javac uitvoeren, waarbij u de naam van het bronbestand als parameter specificeert:

\> javac HelloWorld.Java

De vertaler zal een HelloWorld.class-bestand maken met de processoronafhankelijke bytecode van ons voorbeeld. Om de resulterende code uit te voeren, is het noodzakelijk om een ​​Java-taal runtime-omgeving te hebben (in ons geval is dit een Java-programma), waarin een nieuwe klasse moet worden geladen voor uitvoering. We benadrukken dat de naam van de klasse wordt aangegeven, en niet de naam van het bestand waarin deze klasse is opgenomen.

> java helloworld

Er is niet veel gedaan, maar we hebben geverifieerd dat de geïnstalleerde Java-vertaler en runtime-omgeving werken.

Stap voor stap

HelloWorld is een triviaal voorbeeld. Maar zelfs zo'n eenvoudig programma voor een beginner in de taalJava kan intimiderend ingewikkeld lijken omdat het je kennis laat maken met een heleboel nieuwe concepten en syntaxisdetails van de taal.Laten we elke regel van ons eerste voorbeeld nader bekijken en de elementen analyseren waaruit een Java-programma bestaat.

klasse HalloWereld(

Deze regel bevat een gereserveerd woord.

klas. Het vertelt de vertaler dat we een nieuwe klasse gaan beschrijven.De volledige beschrijving van de klasse staat tussen de accolade openen op de eerste regel en de bijbehorende accolade sluiten op regel 5. De accolades inJava wordt op precies dezelfde manier gebruikt als in C en C++.

public static void main(String args )(

Deze schijnbaar te gecompliceerde voorbeeldreeks is het resultaat van een belangrijke vereiste in het ontwerp van de Java-taal. Het punt is dat in

Java mist globale functies. Aangezien je in de meeste voorbeelden in het eerste deel van het boek regels als deze zult zien, gaan we elk element in de tweede regel eens nader bekijken.

Door deze string in afzonderlijke tokens te splitsen, komen we meteen het trefwoord tegen

openbaar. Deze - toegangsmodificator, waarmee de programmeur de zichtbaarheid van elke methode en elke variabele kan regelen. In dit geval is de toegangsmodifieropenbaar betekent de methodemain is zichtbaar en toegankelijk voor elke klas. Er zijn nog 2 indicatoren voor toegangsniveaus - privé en beschermd, waarover we meer zullen leren inhoofdstuk 8 .

Het volgende sleutelwoord is

statisch. Met behulp van dit woord worden de methoden en variabelen van de klasse gedeclareerd, die worden gebruikt om met de klasse als geheel te werken. Methoden die zijn gedeclareerd met het statische sleutelwoord, kunnen alleen rechtstreeks werken met lokale en statische variabelen.

U hebt vaak methoden nodig die een waarde van een of ander type retourneren: bijvoorbeeld

int voor gehele waarden, float - for real, of de klassenaam voor datatypes gedefinieerd door de programmeur. In ons geval hoeft u alleen maar een tekenreeks op het scherm weer te geven en een waarde van de methode terug te gevenhoofd is niet vereist. Daarom is de modifier gebruiktleegte. Dit probleem wordt in meer detail besproken inHoofdstuk 4 .

Eindelijk kwamen we bij de naam van de methode:

hoofd. Er is hier niets ongewoons, het is alleen dat alle bestaande implementaties van Java-interpreters, die de opdracht hebben gekregen om de klasse te interpreteren, hun werk beginnen door de methode aan te roepen hoofd. Een Java-vertaler kan een klasse vertalen die geen hoofdmethode heeft. En hier is de Java-interpreter om klassen uit te voeren zonder een methode hoofd kan niet.

Alle parameters die aan de methode moeten worden doorgegeven, worden tussen haakjes gespecificeerd als een lijst met elementen gescheiden door ";" (puntkomma). Elk parameterlijstelement bestaat uit een door spaties gescheiden type en identifier. Zelfs als de methode geen parameters heeft, moet u nog steeds een paar haakjes achter de naam plaatsen. In het voorbeeld dat we nu bespreken, is de methode

main heeft slechts één parameter, hoewel van een nogal complex type. Snaar args declareert een parameter met de naamargs, wat een array van objecten is - vertegenwoordigers van de klasseSnaar. Let op de vierkante haken na de args-identificatie. Ze zeggen dat we te maken hebben met een array, en niet met een enkel element van het opgegeven type. We komen in het volgende hoofdstuk terug op de bespreking van arrays, maar houd er voor nu rekening mee dat het type Snaar- het is een klas. We praten meer over snaren inhoofdstuk 9 .

Systeem. uit. prlntln("Hallo wereld!");

Deze regel voert de methode uit:

println-object uit. Een voorwerp out wordt gedeclareerd in de klasOutputStream en wordt statisch geïnitialiseerd in de System. IN hoofdstukken 9 En 13 je krijgt de kans om kennis te maken met de nuances van de lessen String en OutputStream.

De afsluitende accolade op regel 4 beëindigt de methodedeclaratie

main, en hetzelfde haakje op regel 5 voltooit de verklaring van de HelloWorld-klasse.

Lexicale basen

Nu we een minimale Java-klasse in detail hebben behandeld, laten we een stap terug doen en kijken naar de algemene aspecten van Java's syntaxis. Programma's voor

Java- het is een verzameling van spaties, opmerkingen, trefwoorden, identifiers, letterlijke constanten, operators en scheidingstekens.een taal die willekeurige opmaak van programmatekst mogelijk maakt. Om het programma goed te laten werken, is het niet nodig om de tekst op een speciale manier uit te lijnen. bijvoorbeeld klasseHelloWorld kan in twee regels worden geschreven of op een andere manier die u wilt. En het zal precies hetzelfde werken, op voorwaarde dat er ten minste één spatie, tab of nieuwe regel is tussen individuele tokens (waartussen er geen operators of scheidingstekens zijn).

Opmerkingen

Hoewel opmerkingen op geen enkele manier invloed hebben op de uitvoerbare code,

bij correct gebruik blijken ze een zeer belangrijk onderdeel van de brontekst te zijn. Er zijn drie soorten opmerkingen: opmerkingen met één regel, opmerkingen met meerdere regels en ten slotte documentatieopmerkingen. Enkelregelige opmerkingen beginnen met // en eindigen aan het einde van de regel. Deze stijl van commentaar is handig voor het geven van korte uitleg voor afzonderlijke coderegels:

een = 42; // als

42 Antwoord, wat was de vraag?

Voor meer gedetailleerde uitleg kunt u opmerkingen gebruiken die op meerdere regels zijn geplaatst, waarbij u de tekst van opmerkingen begint met tekens /* en eindigt met tekens */ In dit geval wordt alle tekst tussen deze tekenparen beschouwd als een opmerking en zal de vertaler negeer het.

* Deze code is enigszins ingewikkeld...

* Ik zal proberen uit te leggen:

De derde, bijzondere vorm van commentaar is bedoeld voor het serviceprogramma.

javadoc,die Java-vertaalcomponenten gebruikt om automatisch documentatie voor klasse-interfaces te genereren. De conventie die voor dit soort opmerkingen wordt gebruikt, is: een doc-commentaar plaatsen vóór de declaratie van een openbare klasse, methode of variabele, je moet het beginnen met /** (slash en twee sterretjes). Zo'n opmerking eindigt op dezelfde manier als een gewone opmerking - met */ tekens. Het javadoc-programma kan bepaalde speciale variabelen herkennen in doc-opmerkingen waarvan de naam begint met het @-teken. Hier is een voorbeeld van zo'n opmerking:

* Deze klas kan geweldige dingen doen. We raden iedereen aan die

* wil een nog perfectere les schrijven, neem het dan als

* basis.

* @seeJava. appeltje. appeltje

* ©auteur Patrick Naughton

class CoolApplet breidt Applet uit ( /**

* Deze methode heeft twee parameters:

sleutel is de parameternaam.is de waarde van de parameter met de naamtoets.

*/ void put (tekenreekssleutel, objectwaarde) (

Gereserveerde zoekwoorden

Gereserveerde zoekwoorden zijn speciale ID's die in de taal staan

Java wordt gebruikt om ingebouwde typen, modifiers en besturingselementen voor het uitvoeren van programma's te identificeren. Vandaag in de taal J ava heeft 59 gereserveerde woorden (zie tabel 2). Deze trefwoorden, samen met de syntaxis van operators en scheidingstekens, zijn opgenomen in de beschrijving van de taalJava. Ze kunnen alleen worden gebruikt zoals bedoeld, ze kunnen niet worden gebruikt als identifiers voor namen van variabelen, klassen of methoden.

tafel 2

Java gereserveerde woorden

Merk op dat de woorden

byvalue, cast, const, future, generiek, goto, inner, operator, outer, rest, vargereserveerd in Java, maar nog niet gebruikt Java er zijn gereserveerde methodenamen (deze methoden worden door elke klasse overgenomen, ze kunnen niet worden gebruikt, behalve wanneer klassenmethoden expliciet worden overschreven) voorwerp).

tafel 3

Namen van gereserveerde methoden

Java

ID's

Identifiers worden gebruikt om klassen, methoden en variabelen te benoemen. Elke reeks kleine letters en hoofdletters, cijfers en de symbolen _ (underscore) en $ (dollar) kan als identificatie worden gebruikt. Identifiers mogen niet beginnen met een cijfer, zodat de vertaler ze niet verwart met numerieke letterlijke constanten, die hieronder zullen worden beschreven.

Java- hoofdlettergevoelige taal. Dit betekent dat bijv. Waarde en WAARDE - verschillende identificatienummers.

Letterlijk

constanten in

Java krijgen hun letterlijke weergave. Gehele getallen, getallen met drijvende komma, booleans, tekens en strings kunnen overal in de broncode worden geplaatst. Typen worden behandeld inHoofdstuk 4 .

Integer letterlijke

Gehele getallen zijn het type dat het meest wordt gebruikt in reguliere programma's. Elke integerwaarde zoals 1, 2, 3, 42 is een letterlijke integer. Dit voorbeeld toont decimale getallen, dat wil zeggen getallen met grondtal 10 - precies die getallen die we elke dag buiten de computerwereld gebruiken. Naast decimale, octale en hexadecimale getallen kunnen ook gehele getallen worden gebruikt. Java herkent octale getallen aan hun voorloopnul. Normale decimale getallen kunnen niet bij nul beginnen, dus het gebruik van het schijnbaar geldige getal 09 in een programma zal resulteren in een vertaalfout, aangezien 9 niet in het bereik 0 ligt.

7, geldig voor octale cijfers. Een hexadecimale constante wordt onderscheiden door voorloopnul-x-tekens (0x of 0X). Het waardebereik van een hexadecimaal cijfer is 0..15, en als getallen voor de waarden 10..15 gebruikte letters van A tot F (of van a naar F). Met behulp van hexadecimale getallen kunt u computergerichte waarden op een beknopte en duidelijke manier uitdrukken, bijvoorbeeld door te schrijven Oxffff in plaats van 65535.

Gehele letterlijke waarden zijn waarden van het type

int, dat is Java wordt opgeslagen in een 32-bits woord. Als u een waarde nodig hebt die groter is dan ongeveer 2 miljard in modulus, moet u een typeconstante gebruikenlang. In dit geval wordt het nummer opgeslagen in een 64-bits woord. Aan getallen met een van de bovenstaande basen kunt u rechts een kleine letter of hoofdletter toewijzenL, op zo'n manier aangevend dat het gegeven nummer bij het type hoortlang. Bijvoorbeeld Ox7ffffffffffffffL of9223372036854775807L is de grootste waarde voor een aantal typen lang.

Letterlijke met drijvende komma

Drijvende-kommagetallen vertegenwoordigen decimale waarden die een fractioneel deel hebben. Ze kunnen in regulier of exponentieel formaat worden geschreven. In het gebruikelijke formaat bestaat een getal uit een aantal decimale cijfers gevolgd door een decimale punt, gevolgd door decimale cijfers van het breukdeel. 2.0, 3.14159 en .6667 zijn bijvoorbeeld geldige waarden voor getallen met drijvende komma die in het standaardformaat zijn geschreven. In exponentieel formaat wordt na de opgesomde elementen bovendien de decimale exponent aangegeven. De volgorde wordt bepaald door een positief of negatief decimaal getal na het symbool E of E. Voorbeelden van getallen in exponentieel formaat: 6.022e23, 314159E-05, 2e+100. IN

Java floats worden standaard behandeld als doubles. Als je een typeconstante nodig hebtfloat, rechts van de letterlijke moet het symbool F of f worden toegewezen. Als je een fan bent van overbodige definities, kun je letterlijke typen toevoegen dubbel teken D of D. Standaard typewaardendouble worden opgeslagen in een 64-bits woord, minder nauwkeurige typewaarden zweven - in 32-bit.

Booleaanse letterlijke woorden

Een booleaanse variabele kan maar twee waarden hebben -

waar (waar) en vals (vals). Booleaanse waarden waar en false worden niet geconverteerd naar een numerieke weergave. trefwoord waar in Java is niet gelijk aan 1, en onwaar is niet gelijk aan 0. In In Java kunnen deze waarden alleen worden toegewezen aan booleaanse variabelen of worden gebruikt in expressies met logische operators.

Letterlijke karakters

symbolen in

Java- dit zijn indexen in de symbolentabelUNICODE. Het zijn 16-bits waarden die kunnen worden omgezet naar gehele getallen en waarop gehele rekenkundige operatoren, zoals optellen en aftrekken, kunnen worden toegepast. Letterlijke karakters worden tussen een paar apostrofs (" ") geplaatst. Alle zichtbare tabeltekensASCII kan direct in een paar apostrofs worden ingevoegd: -"a", "z", "@". Er zijn verschillende escape-reeksen voor tekens die niet rechtstreeks kunnen worden ingevoerd.

tafel 3

2. Ontsnappingsreeksen voor tekens

Ontsnappingsvolgorde

Beschrijving

Octaal karakter

(dd)

Hexadecimaal teken

UNICODE (xxxx)

Apostrof

Backslash

koetsretour

Line feed (line feed, nieuwe regel)

Paginavertaling

(formulierfeed)

Horizontaal tabblad

(tabblad)

Stap terug

(backspace)

tekenreeksletters

Tekenreeksletters in

Java ziet er precies hetzelfde uit als in veel andere talen - het is willekeurige tekst tussen een paar dubbele aanhalingstekens (""). Hoewel kleine letters inJava is op een heel eigenaardige manier geïmplementeerd(Java creëert een object voor elke regel), uiterlijk verschijnt dit op geen enkele manier. Voorbeelden van letterlijke tekenreeksen: Hallo Wereld!"; "twee\strings; \ En dit staat tussen aanhalingstekens\"".Java moet op dezelfde bronregel beginnen en eindigen. Deze taal heeft, in tegenstelling tot vele andere, geen ontsnappingsreeks om een ​​letterlijke tekenreeks op een nieuwe regel voort te zetten.

Operators

Een operator is iets dat een actie uitvoert op een of twee argumenten en een resultaat oplevert. Syntactisch gezien worden operators meestal tussen identifiers en letterlijke waarden geplaatst. Operators worden in detail besproken in

hoofdstuk 5 , hun lijst wordt gegeven in Tabel 3. 3.

tafel 3

3. Taaloperatoren Java

scheidingstekens

Slechts enkele groepen karakters die in een syntactisch correct Java-programma kunnen voorkomen, zijn nog naamloos. Dit zijn eenvoudige scheidingstekens die het uiterlijk en de functionaliteit van de code beïnvloeden.

Naam

Waar worden ze voor gebruikt?

ronde haakjes

Ze wijzen lijsten met parameters toe in de declaratie en aanroep van de methode, ze worden ook gebruikt om de prioriteit van bewerkingen in uitdrukkingen in te stellen, de selectie van uitdrukkingen in controleverklaringen voor programma-uitvoering en in operatoren voor typecasting.

beugel

vierkante haakjes

Gebruikt in array-declaraties en bij toegang tot individuele array-elementen.

puntkomma

Scheidt operators.

Scheidt identifiers in variabele declaraties, ook gebruikt om statements in een loop header te linken

voor.

Scheidt pakketnamen van subpakket- en klassenamen, ook gebruikt om een ​​variabele of methodenaam te scheiden van een variabelenaam.

Variabelen

Een variabele is het basiselement voor het opslaan van informatie in een Java-programma. Een variabele wordt gekenmerkt door een combinatie van identifier, type en scope. Afhankelijk van waar je de variabele hebt gedeclareerd, kan het lokaal zijn voor bijvoorbeeld code in een for-lus, of het kan een instantievariabele zijn die beschikbaar is voor alle methoden van die klasse. Lokale bereiken worden gedeclareerd met accolades.

Variabele declaratie

De basisvorm van een variabele declaratie is:

typ id[=waarde][, id[=waarde

7...];

Het type is een van de ingebouwde typen, d.w.z.

byte, kort, int, lang, char, float, dubbel,boolean, of de naam van een klasse of interface. We zullen al deze soorten in detail bespreken involgend hoofdstuk . Hieronder staan ​​enkele voorbeelden van variabele declaraties van verschillende typen. Merk op dat sommige van de voorbeelden initialisatie van de initiële waarde bevatten. Variabelen waarvoor geen initiële waarden zijn opgegeven, worden automatisch op nul geïnitialiseerd.

In het onderstaande voorbeeld worden drie variabelen gemaakt die overeenkomen met de zijden van een rechthoekige driehoek en dan

C met behulp van de stelling van Pythagoras wordt de lengte van de schuine zijde berekend, in dit geval het getal 5, de grootte van de schuine zijde van een klassieke rechthoekige driehoek met zijden 3-4-5.

klasse Variabelen(

public static void main(String args )(

= Math.sqrt (a* a + b* b);

Systeem.uit.println("c = "+c);

Je eerste stap

We hebben al veel bereikt: eerst schreven we een klein programma in de taal

Java en in detail onderzocht waar het uit bestaat (codeblokken, opmerkingen). We zijn een lijst met trefwoorden en operators tegengekomen waarvan het doel in latere hoofdstukken in detail zal worden uitgelegd. Nu kunt u zelf de belangrijkste onderdelen van elk Java-programma onderscheiden en bent u klaar om te beginnen met lezen.Hoofdstuk 4 , waarin eenvoudige gegevenstypen in detail worden besproken.

Programmeren is het schrijven van de broncode van een programma in een van de programmeertalen. Er zijn veel verschillende programmeertalen, waardoor allerlei programma's worden gemaakt die een bepaald scala aan problemen oplossen. Een programmeertaal is een reeks gereserveerde woorden die worden gebruikt om de broncode van een programma te schrijven. Computersystemen zijn (nog) niet in staat om menselijke taal te begrijpen, en meer nog, menselijke logica (vooral vrouwen), dus alle programma's zijn geschreven in programmeertalen, die vervolgens worden vertaald in computertaal of in machinecode. Systemen die de broncode van een programma in machinecode vertalen, zijn zeer complex en worden in de regel gemaakt door meer dan een dozijn maanden en meer dan een dozijn programmeurs. Dergelijke systemen worden frameworks of tools voor applicatieprogrammering genoemd.

Een programmeersysteem is een enorme, doordachte visuele omgeving waar je de broncode van een programma kunt schrijven, het in machinecode kunt vertalen, het kunt testen, debuggen en nog veel meer. Daarnaast zijn er programma's waarmee u de bovenstaande acties kunt uitvoeren via de opdrachtregel.

Je hebt waarschijnlijk meer dan eens de term "een programma geschreven onder Windows of onder Linux, Unix" gehoord. Het feit is dat programmeeromgevingen bij het vertalen van een programmeertaal in machinecode van twee soorten kunnen zijn - dit zijn compilers en interpreters. Het compileren of interpreteren van een programma bepaalt hoe het programma verder wordt uitgevoerd op het apparaat. Programma's die zijn geschreven in Java werken altijd op basis van interpretatie, terwijl programma's die zijn geschreven in C/C++ compilaties zijn. Wat is het verschil tussen deze twee methoden?

De compiler leest, na het schrijven van de broncode op het moment van compilatie, de volledige broncode van het programma in één keer en vertaalt deze in machinecode. Daarna bestaat het programma als geheel en kan het alleen worden uitgevoerd in het besturingssysteem waarin het is geschreven. Programma's die onder Windows zijn geschreven, kunnen daarom niet werken onder Linux en vice versa. De interpreter voert het programma stap voor stap of regel voor regel uit elke keer dat het wordt uitgevoerd. Tijdens de interpretatie wordt geen uitvoerbare code gemaakt, maar virtuele, die vervolgens wordt uitgevoerd door de virtuele Java-machine. Daarom kunnen Java-programma's op elk platform, Windows of Linux, op dezelfde manier worden uitgevoerd als er een virtuele Java-machine in het systeem is, ook wel het Runtime-systeem genoemd.

Object georiënteerd programmeren

Objectgeoriënteerd programmeren is gebaseerd op objecten, wat enigszins lijkt op onze wereld. Als je om je heen kijkt, kun je zeker iets vinden dat je zal helpen het model van dergelijke programmering beter te begrijpen. Ik zit bijvoorbeeld momenteel aan mijn bureau en typ dit hoofdstuk op een computer die bestaat uit een monitor, systeemeenheid, toetsenbord, muis, luidsprekers, enzovoort. Al deze onderdelen zijn de objecten waaruit de computer bestaat. Dit wetende, is het heel gemakkelijk om een ​​algemeen model te formuleren van de werking van de hele computer. Als u de fijne kneepjes van de software- en hardware-eigenschappen van een computer niet begrijpt, kunnen we zeggen dat het System Unit-object bepaalde acties uitvoert die het Monitor-object laat zien. Op zijn beurt kan het Keyboard-object acties corrigeren of zelfs instellen voor het System block-object die de werking van het Monitor-object beïnvloeden. Het gepresenteerde proces karakteriseert heel goed het hele systeem van objectgeoriënteerd programmeren.

Stel je een krachtig softwareproduct voor dat honderdduizenden regels code bevat. Het hele programma wordt regel voor regel, regel voor regel uitgevoerd, en in principe zal elk van de volgende coderegels noodzakelijkerwijs verbonden zijn met de vorige coderegel. Als u geen objectgeoriënteerd programmeren gebruikt, en wanneer u deze programmacode moet wijzigen, bijvoorbeeld als u enkele elementen moet verbeteren, dan zult u veel werk moeten doen met de volledige broncode van dit programma.

Bij objectgeoriënteerd programmeren is alles veel eenvoudiger, terug naar het voorbeeld van een computersysteem. Stel dat je niet meer tevreden bent met een zeventien inch monitor. Je kunt hem natuurlijk makkelijk inruilen voor een twintig inch monitor als je over bepaalde financiële middelen beschikt. Het uitwisselingsproces zelf zal geen grote problemen met zich meebrengen, behalve dat de driver moet worden gewijzigd en het stof van onder de oude monitor moet worden geveegd en dat is alles. Ongeveer volgens dit werkingsprincipe is objectgeoriënteerd programmeren gebouwd, waarbij een bepaald deel van de code een klasse van homogene objecten kan vertegenwoordigen die gemakkelijk kunnen worden geüpgraded of vervangen.

Objectgeoriënteerd programmeren geeft heel gemakkelijk en duidelijk de essentie weer van het probleem dat wordt opgelost en, belangrijker nog, maakt het mogelijk om onnodige objecten te verwijderen zonder het hele programma te beschadigen, door deze objecten te vervangen door nieuwere. Dienovereenkomstig wordt de algehele leesbaarheid van de broncode van het hele programma veel gemakkelijker. Het is ook veelbetekenend dat dezelfde code in totaal verschillende programma's kan worden gebruikt.

Klassen

De kern van alle Java-programma's zijn klassen, waarop objectgeoriënteerd programmeren is gebaseerd. In feite weet je al wat klassen zijn, maar je weet het nog niet. In het vorige gedeelte hebben we het gehad over objecten, waarbij we de hele computer als voorbeeld hebben gebruikt. Elk object waaruit de computer is samengesteld, is een vertegenwoordiger van zijn klasse. De klasse Monitor verenigt bijvoorbeeld alle monitoren, ongeacht hun type, grootte en mogelijkheden, en één bepaalde monitor op uw bureau is een object van de monitorklasse.

Deze aanpak maakt het heel eenvoudig om allerlei processen in het programmeren te simuleren, waardoor het gemakkelijker wordt om de taken op te lossen. Er zijn bijvoorbeeld vier objecten van vier verschillende klassen: monitor, systeemeenheid, toetsenbord en luidsprekers. Om een ​​geluidsbestand af te spelen, moet u een opdracht geven aan de systeemeenheid met behulp van het toetsenbord, u zult de actie van het geven van de opdracht visueel op de monitor observeren en als resultaat zullen de luidsprekers het geluidsbestand afspelen. Dat wil zeggen, elk object maakt deel uit van een bepaalde klasse en bevat alle tools en mogelijkheden die beschikbaar zijn voor deze klasse. Er kunnen net zoveel objecten van één klasse zijn als nodig zijn om de taak op te lossen.

Methoden:

Bij het geven van een voorbeeld van het afspelen van een geluidsbestand werd vermeld dat er een commando of bericht werd gegeven op basis waarvan bepaalde handelingen werden uitgevoerd. De taak om acties uit te voeren wordt opgelost met behulp van de methoden die elk object heeft. Methoden zijn een set commando's waarmee je bepaalde acties met een object kunt uitvoeren.

Elk object heeft zijn eigen doel en is ontworpen om een ​​bepaald aantal taken met behulp van methoden op te lossen. Wat zou bijvoorbeeld het gebruik van het Keyboard-object zijn als het onmogelijk was om de toetsen in te drukken, terwijl je wel commando's kon geven? Het Keyboard-object heeft een aantal toetsen waarmee de gebruiker controle krijgt over het invoerapparaat en de nodige commando's kan geven. De verwerking van dergelijke commando's vindt plaats met behulp van methoden.

U drukt bijvoorbeeld op de Esc-toets om elke actie te annuleren en geeft daarbij een commando aan de methode die aan deze toets is toegewezen, die dit probleem op programmaniveau oplost. De vraag rijst onmiddellijk over het aantal methoden van het Keyboard-object, maar er kan een andere implementatie zijn - van het definiëren van methoden voor elk van de toetsen (wat in feite onredelijk is), tot het creëren van een enkele methode die de algemene staat van het toetsenbord. Dat wil zeggen, deze methode controleert of een toets is ingedrukt en beslist vervolgens, afhankelijk van welke van de toetsen erbij betrokken is, wat te doen.

Invoering

Dit werk is gewijd aan een van de meest veelbelovende programmeertalen van vandaag - de Java-taal. De technologie die "Java" wordt genoemd, kan zonder overdrijving revolutionair worden genoemd in de softwareontwikkelingsindustrie.

Sorteren kan worden geïmplementeerd in andere programmeertalen zoals PHP, C++, etc. Het is gewoon veel winstgevender in Java. Details worden hieronder besproken. De nieuwigheid zit in het feit dat er nog niet eerder een sorteerprogramma in deze taal en in deze interpretatie is geïmplementeerd.

Om de taak uit te voeren, werd een algoritme voorgesteld voor het schrijven van een programma. Verder is dit algoritme geïmplementeerd in Java.

Beschrijving van de Java-programmeertaal

Algemene kenmerken van Java

De Java-taal is gekozen om het sorteerprogramma te schrijven. Java is een objectgeoriënteerde programmeertaal ontwikkeld door Sun Microsystems sinds 1991 en officieel uitgebracht op 23 mei 1995. Aanvankelijk heette de nieuwe programmeertaal Oak (James Gosling) en werd ontwikkeld voor consumentenelektronica, maar werd later omgedoopt tot Java en begon te worden gebruikt voor het schrijven van applets, applicaties en serversoftware.

De Java-programmeertaal is anders dan alle andere die er bestaan. Het is ontworpen om het via browsers gemakkelijker te maken om op computers op het WWW te werken. Elke computer heeft tegenwoordig een browser. Elke browser ondersteunt op zijn beurt Java. Dit betekent dat u documenten kunt bekijken die over de hele wereld zijn opgeslagen en door op een link te klikken een Java-programma kunt activeren dat via het netwerk wordt verzonden en op uw computer wordt uitgevoerd.

Een van de belangrijkste voordelen van de Java-taal is de onafhankelijkheid van het platform en het type computer waarop de programma's draaien. Zo kan dezelfde code worden uitgevoerd onder de besturingssystemen Windows, Linux, FreeBSD, Solaris, Apple Mac, enz. Dit wordt erg belangrijk wanneer programma's worden gedownload via het wereldwijde internet en op verschillende platforms worden gebruikt. De programmeertaal Java kan niet alleen werken met statische teksten en afbeeldingen, maar ook met verschillende dynamische objecten.

Een ander even belangrijk voordeel van Java is de grote gelijkenis met de programmeertaal C++. Daarom, voor die programmeurs die bekend zijn met de syntaxis van C en C ++, zal het gemakkelijk zijn om Java te leren.

Java is ook een volledig objectgeoriënteerde taal, zelfs meer dan C++. Alle entiteiten in de Java-taal zijn objecten, met uitzondering van enkele primitieve typen, zoals getallen.

Ook is het belangrijk dat het veel makkelijker is om in Java programma's te ontwikkelen die geen fouten bevatten dan in C++.

Het punt is dat de ontwikkelaars van de Java-taal van het bedrijf Sun een fundamentele analyse hebben uitgevoerd van programma's in de C++-taal. De "bottlenecks" van de broncode werden geanalyseerd, wat leidde tot het verschijnen van moeilijk te detecteren fouten. Daarom werd de beslissing genomen om de Java-taal te ontwerpen met de mogelijkheid om programma's te maken die de meest voorkomende fouten zouden verbergen.

Hiervoor is het volgende gedaan:

de ontwikkelaars hebben de mogelijkheid geëlimineerd om expliciet geheugen toe te wijzen en vrij te maken.

Geheugen in Java wordt bijvoorbeeld automatisch vrijgemaakt door middel van garbagecollection. Het blijkt dat de programmeur verzekerd is tegen fouten die ontstaan ​​door oneigenlijk gebruik van het geheugen.

de introductie van echte arrays en het verbod op pointers.

Nu kunnen programmeurs geen gegevens uit het geheugen wissen vanwege onjuist gebruik van aanwijzers.

de mogelijkheid om de toewijzingsoperator te verwarren met de vergelijkingsoperator voor gelijkheid werd uitgesloten. In de regel leidt het probleem met het teken "=" vaak tot logische fouten in C en C++, die niet zo gemakkelijk te detecteren zijn. Zeker bij grote programma's.

meervoudige overerving is volledig uitgesloten. Het is vervangen door een nieuw concept - een interface waarvan het idee is ontleend aan de Objective C-taal.

Een interface geeft de programmeur bijna alles wat een programmeur kan krijgen van meervoudige overerving, terwijl de complexiteit die gepaard gaat met het beheer van klassenhiërarchieën wordt vermeden.

En het maken van websites wordt steeds populairder en trekt de aandacht van een groot aantal mensen. Zelfs een persoon zonder speciaal onderwijs kan beginnen met het ontwikkelen van programma's, het belangrijkste is het verlangen en de wens om nieuw materiaal en constante oefening te leren.

Studie opties

Waar te beginnen met leren coderen Er zijn verschillende manieren om nieuw materiaal op dit gebied te leren. Privéleraren laten u zien hoe u vanaf het begin kunt leren programmeren en leren u belangrijke aspecten van bouwcode. Deze methode is echter vrij duur, dus de volgende trainingsmethoden worden voornamelijk gebruikt:

  1. Gespecialiseerde cursussen. Hun kosten zijn veel lager dan de lessen van een persoonlijke tutor. Het is vermeldenswaard dat veel werkgevers positief reageren op de beschikbaarheid van verschillende certificaten van voltooiing van training in computeracademies. Besteed aandacht aan de cursussen van de wereldberoemde bedrijven Microsoft en Cisco.
  2. Gratis cursussen op afstand. Er is een groot aantal diensten op internet waarmee u colleges kunt bekijken van Oxford, Harvard en andere bekende onderwijsinstellingen in de wereld. Er zijn ook speciale platforms voor het trainen van praktische programmeervaardigheden. Lees verderop in het artikel voor meer informatie over afstandsonderwijs en handige internetdiensten.
  3. Zelfstudie. Waar begin je met het leren programmeren vanaf nul als je niet van plan bent je aan te melden voor cursussen en geld uit te geven? In dit geval is het het gemakkelijkst om zelfstudie te doen. Je moet beginnen met leren door de basis te lezen, niet in de theorie duiken, meteen beginnen met oefenen, want alleen tijdens het maken van een programma verwerf je de nodige vaardigheden.

Nadat je de opleidingsoptie hebt gekozen die bij je past, moet je beslissen over het vakgebied, omdat programmeren een vrij breed scala aan verschillende takken heeft.

Hoe kies je de juiste richting?

Het hangt direct af van het type software dat u in de toekomst gaat maken:

Als de belangrijkste rol voor u loon is, richt uw aandacht dan op de arbeidsmarkt. Nu zijn de meest populaire ontwikkelaars die gespecialiseerd zijn in Java, C#, ASP.NET, C++.

Talen op laag en hoog niveau. Verschil en toepassingen

Er wordt aangenomen dat alle programmeertalen zijn onderverdeeld in high-level en low-level. Code op laag niveau is voor een computer gemakkelijker te verwerken, maar het schrijven ervan kost veel tijd en vereist meer domeinkennis. Dergelijke talen (bijvoorbeeld assembler) worden gebruikt om software te schrijven voor digitale schakelingen en microcontrollers. Ze zijn niet erg handig om helemaal opnieuw te leren programmeren. Waar te beginnen met het schrijven van de eerste programma's, zullen de nuttige diensten en literatuur van wereldberoemde auteurs die later in het artikel worden gegeven, vragen.

Talen op hoog niveau zijn veel gemakkelijker te gebruiken omdat ze ingebouwde bibliotheken gebruiken om code te vereenvoudigen en te visualiseren. De meeste moderne software is geschreven in talen op hoog niveau.

Programmeren vanaf nul: waar te beginnen met toepassingen?

Het proces van het maken van mobiele programma's stelt programmeurs in staat om met de nieuwste tools te werken en als resultaat een behoorlijke hoeveelheid geld te verdienen door inkomsten te genereren. Eerst moet je de site kiezen waar je gaat werken:

  1. Google spelen. Applicatiewinkel voor gebruikers van het Android-besturingssysteem. Dit besturingssysteem heeft het grootste aandeel gebruikers op de markt. Java en C/C++ talen worden gebruikt om applicaties en games te ontwikkelen. De meest populaire toepassingen zijn instant messengers, clients voor sociale netwerken, cloudopslag en games.
  2. Windows Mobile-winkel. Deze winkel wint snel aan populariteit, samen met smartphones van Microsoft. In de GOS-landen geven de meeste gebruikers de voorkeur aan tablets op het Windows Phone-platform. Het programmeren van applicaties voor zo'n winkel helpt om meer geld te verdienen aan het genereren van inkomsten, omdat, in tegenstelling tot Android, bijna alle programma's in de Windows Store op betaalde basis worden gedistribueerd.
  3. App Winkel. Een ander winstgevend platform voor ontwikkeling (taal - Objective-C). Het proces van het maken van programma's voor Apple-apparaten vereist een vooraf geïnstalleerde ontwikkelomgeving genaamd Xcode. De volgende stap is om vanaf het begin te leren programmeren met Objective-C. Waar te beginnen met het schrijven van code, David Mark's boek "Learning C for Mac. Tweede druk".

Java-taal

De meeste professionele ontwikkelaars raden aan om te beginnen met het leren programmeren met de taal Java. Het is gemakkelijk te leren en tegelijkertijd gewild in de markt. Gebruik de onderstaande tips als u besluit om helemaal opnieuw te leren programmeren. Hoe te beginnen met Java-ontwikkeling?

Java is een objectgeoriënteerde programmeertaal op hoog niveau die nodig is om de meeste moderne webapplicaties en games te ontwikkelen. Tijdens het compilatieproces (waarbij de geschreven code wordt omgezet in een taal die het apparaat kan begrijpen), wordt de code omgezet in een reeks bytes, zodat het programma eenvoudig kan worden getest op elke virtuele Java-machine.

Programmeren vanaf nul. Waar te beginnen met Java- en webcodering?

De Java-taal wordt veel gebruikt bij webontwikkeling. Voordat u een volwaardig programmeerproces start, moet u Java, PHP, MySQL, HTML, CSS leren. Hieronder volgt een meer gedetailleerde uitleg van deze begrippen:

  1. Java - gebruikt bij het schrijven van hulpprogramma's voor sites en het voorschrijven van de logica van de functionaliteit van webpagina's.
  2. PHP is een taal voor het maken van persoonlijke webpagina's. Heeft een scriptstructuur. De leidende taal in de populaire dynamische websites van vandaag. PHP is nodig om scripting en programmeren vanaf het begin te begrijpen. Waar te beginnen? Uit het boek van Josh Lockhut PHP: The Right Way.
  3. MySQL is een systeem voor het beheren van de basisprincipes van gegevens. Het wordt veel gebruikt bij het maken van websites waarvoor grote hoeveelheden gegroepeerde gegevens moeten worden opgeslagen.
  4. HTML is geen programmeertaal. Dit is de opmaaktaal die wordt gebruikt om de basis van een webpagina te schrijven (bouwstenen, het verspreiden van tekst en alinea's, enzovoort).
  5. CSS - Cascading Style Sheet. Alleen gebruikt in combinatie met HTML om de opmaaktaal stijl en uiterlijk te geven.

Zodra u de basisconcepten achter deze mijlpalen begrijpt, kunt u beginnen met het bouwen van de professionele, dynamische websites waar tegenwoordig veel vraag naar is.

Webprogrammeren. Relevantie en functies

Het onderwerp webprogrammering is tegenwoordig bijzonder relevant. Zoals hierboven vermeld, moet u, om te beginnen met het ontwikkelen van webelementen, een vrij grote hoeveelheid kennis hebben over opmaaktalen, scripting, logica en stijlen.

Nu zul je niemand verbazen met sites die alleen zijn gemaakt met HTML en CSS, dus er is vraag geworden naar webontwikkelaars die de site visueel mooi kunnen maken en deze kunnen vullen met alle functionaliteit die nodig is voor gebruikers.

Dit type ontwikkeling vereist het maken van twee typen van hetzelfde programma: server- en clientonderdelen. De programmeur moet het werkingsprincipe van de zogenaamde sockets begrijpen - datapakketten waarmee u de nodige informatiestromen over het netwerk tussen de server en de client kunt overbrengen.

Toepassingen maken voor het Windows-besturingssysteem

Om dergelijke programma's te ontwikkelen, heb je kennis van de C#-taal nodig. Met een gratis service van Microsoft, Virtual Academy genaamd, kunt u alle functies van deze taal leren en oefenen met het schrijven van eenvoudige toepassingen.

Volgens het nieuwe Microsoft-beleid zijn alle applicaties ingedeeld in de softwarewinkel, zodat u toegang krijgt tot het genereren van inkomsten met uw project.

C-talenfamilie (C, C++, C#). Eigenaardigheden

Vanaf nul programmeren - waar te beginnen met het kiezen van een taal? Het antwoord op deze vraag kan worden verkregen door dieper in te gaan op de soorten technologieën voor het maken van applicaties. Er moet ook rekening worden gehouden met de relevantie van een bepaalde taal.

De talen C, C++, C# hebben één ding gemeen: de aanwezigheid van de OOP-functie (objectgeoriënteerd programmeren). Deze technologie vereenvoudigt het proces van het schrijven van programmacode aanzienlijk. Elk programma-object wordt beschreven in een specifieke klasse en heeft zijn eigen parameters, methoden en eigenschappen. Zo hoeft de programmeur niet elke keer enorme stukken code te schrijven als hetzelfde object meerdere keren moet worden gebruikt.

Handige internetdiensten om de basisprincipes van programmeren en de codestructuur van elke applicatie te leren

In de eerste leerfase biedt bijna elke webservice u de mogelijkheid om de mogelijkheden ervan uit te proberen met Pascal, de eenvoudigste van de talen op hoog niveau. Het wordt gebruikt voor educatieve doeleinden, het wordt onderwezen op scholen en technische scholen, zodat studenten programmeren vanaf het begin kunnen begrijpen. Hoe pascal-coderen? Allereerst moet u de ontwikkelomgeving naar uw pc downloaden. Dit is een klein uitvoerbaar bestand waarin u de programmacode moet schrijven. Gebruik TurboPascal, omdat dit de meest populaire omgeving is om deze programmeertaal te leren.

HourOfCode is een webservice van Microsoft. Het is ontworpen om studenten duidelijk te laten zien wat een cyclus, variabele, klas, voorwaarden zijn. Het leerproces is als een spel.

CodeAcademy is een krachtige bron voor het leren van bijna elke codeertechnologie. Als u slechts een uur per dag besteedt, merkt u niet hoe u leert programmeren en uw eigen projecten maakt.

Udacity is een dienst die gebruikers gratis toegang geeft tot lezingen van vooraanstaande professoren en ontwikkelaars.

Eerste ervaring opdoen. freelance

Nadat je de basisprincipes van de door jou gekozen taal hebt geleerd, kun je veilig doorgaan naar je eerste projecten. Start met freelancen, want zo vul je je portfolio en doe je ervaring op in het communiceren met klanten. Dergelijke vaardigheden zullen in de toekomst van pas komen als je een baan in een bedrijf wilt krijgen voor een officiële functie als softwareontwikkelaar.

Resultaat

Programmeren vanaf nul: waar te beginnen? Voor dummies raden professoren aan wereldberoemde universiteiten je aan om te oefenen met de basisstructuren die de basis vormen van elke programmeertaal. Meld u aan voor gespecialiseerde cursussen of zelfstudie door online naar lezingen te luisteren.