Java és un llenguatge de programació Orientat a Objectes (OOL) dissenyat el 1990 per James Gosling amb altres companys de Sun Microsystems a partir de C++. Entre el 13 de novembre de 2006 i el maig del 2007 Sun va alliberar parts de Java com a programari lliure de codi obert amb llicència GPL.
Hi ha llenguatges compilats i llenguatges interpretats :
Els llenguatges compilats tradueixen el programa font a codi que pot executar l'ordinador, i que per tant és depenent de la màquina en la qual es va a executar o, com a mínim, del seu sistema operatiu. Per exemple, si compilam el meu programa per al sistema operatiu Linux no podré utilitzar el fitxer executable resultant en un sistema Windows.
Els llenguatges interpretats, per contra, es van traduint sobre la marxa, de manera que no es necessita compilador però sí un intèrpret que també serà diferent en funció de la màquina en la qual s'instal·li. La interpretació requereix temps: per això l'execució dels llenguatges interpretats és més lenta que la dels seus homòlegs compilats.
El Java és un llenguatge compilat i interpretat en temps d'execució, per tant, pot semblar lent en comparació amb altres llenguatges, però ofereix un índex de re-utilització de codi molt elevat, sent possible trobar moltes llibreries lliures de Java, a més és un llenguatge multi-plataforma.Generalment els programes de Java es compilen en un bytecode (fitxer .class) que pot córrer en una Màquina Virtual Java. Es disposa de tres implementacions diferents de Java: J2SE per a aplicacions d'escriptori;
J2EE per a aplicacions distribuïdes i
J2ME per a plataformes amb recursos més reduïts com ara mòbils o PDAs.
I què és Java? Compilat o interpretat? Doncs cap de les dues, o millor dit les dues alhora. Java compila el programa a un llenguatge intermedi anomenat bytecode (arxius amb extensió . Class) comú a totes les plataformes. A partir d'aquí funciona com un llenguatge interpretat gràcies a l'entorn d'execució de Java, un intèrpret diferent per a cada plataforma i que haurà d'estar instal·lat al nostre ordinador si volem executar programes escrits en Java. Les contínues millores en aquesta màquina virtual realitzades per Sun, l'empresa creadora del llenguatge, fan que les diferències de velocitat d'execució entre Java i un llenguatge totalment compilat (com C) siguin cada vegada menors.El resultat és el exhibit pel lema de Java: compile onze, run anywhere. És a dir, només et cal compilar el programa un cop i es podrà executar en múltiples i diverses màquines, sempre que aquestes tinguin instal·lat l'entorn d'execució.
Quan una persona aprèn a programar en un llenguatge estructurat com: Pascal, Modula 2 o C, no està simplement aprenent aquests llenguatges, estàcomprenent també el paradigma de programació estructurada, i per tant sabrà passar d'un llenguatge a un altre amb gran facilitat, tan aviat coms'acostumi a les peculiaritats sintàctiques de cada llenguatge.
De la mateixa manera, quan aprenem Java hem desentranyat el paradigma de programació orientada a objectes (OO), que difereix bastant de l'anterior. Per tant hem de tenir en compte que, fins i tot si tenim nocions de programació en llenguatges estructurats caldrà cert esforç per canviar l'enfocament sobre la forma de dissenyar i abordar nostresprogrames.
Programar classes
Igual que tenim un tipus de dades sencer per representar nombres i un tipus String per representar cadenes de text , no seria perfecte disposar d'un tipus Quadrat, Persona, Avió, Factura, etc . segons les necessitats del nostre problema? Doncs això és precisament el que farem en Java: crearem una classe Rectangle i definirem els seus atributs (base, alçada, color ... ) i els seus mètodes (el que sap fer: calcular la seva àrea, dibuixar a la pantalla...). Un cop estigui feta, en el meu programa principal podré crear tots els objectes que vulgui d'aquesta classe i personalitzar-los amb els seus diferents atributs.
Així, les classes i els objectes són l'equivalent a tipus i variables: igual que declaro una variable sencera x del tipus sencer, crec un objecte juan de la classe Client. La diferència és que l'objecte juan no és una simple variable, ja que inclou totes les seves dades personals, i és capaç de fer coses com calcular la seva edat: juan.calcularEdad( ), imprimir les seves vendes: juan.imprimirDatosVentas( ), i tot allò per al que l'hàgim preparat.
Però si el que definim són únicament tipus, on és l'autèntic programa principal? Hi ha d'haver un mètode especial, anomenat main, que sí ens recordarà als llenguatges estructurats, només que en aquest cas la seva missió consistirà únicament en crear objectes a imatge de la classe (treure'ls a escena) i demanar-los que facin coses.
Llibre de text BlueJ (documentació en castellà).
Descarrega el JDK.
Descarrega BlueJ
Si mai ha fet servir un llenguatge de programació orientat a objectes abans, hauràs d'aprendre alguns conceptes bàsics abans de començar a escriure codi. Aquesta lliçó et donarà a conèixer conceptes com: objectes, classes, herència, interfícies i paquets. Cada debat se centra en com aquests conceptes es relacionen amb el món real, mentre que simultàniament proporciona una introducció a la sintaxi del llenguatge de programació Java.
Un objecte és un paquet de programari d'estat i el comportament relacionat. Els objectes de programari sovint s'utilitzen per modelar els objectes del món real que es troben en la vida quotidiana. Aquesta lliçó explica com es representen estat i el comportament dins d'un objecte, introdueix el concepte d'encapsulació de dades, i explica els beneficis de dissenyar el seu programari d'aquesta manera.
Classe (Class)
Una classe és un model o prototip de la qual es creen els objectes. Aquesta secció defineix una classe que modela l'estat i el comportament d'un objecte del món real. intencionadament se centra en els fonaments, que mostra com fins i tot una classe simple netament pot modelar estat i el comportament.
Herència (Inheritance)
L'herència proporciona un mecanisme poderós i natural per a l'organització i estructuració del programari. En aquesta secció s'explica com les classes hereten l'estat i el comportament de les seues superclasses, i explica com derivar una classe d'una altra utilitzant la sintaxi simple que ofereix el llenguatge de programació Java .
Interfície (Interface)
Una interfície és un contracte entre una classe i el món exterior. Quan una classe implementa una interfície, es compromet a proporcionar el comportament publicada per aquesta interfície. Aquesta secció defineix una interfície senzilla i explica els canvis necessaris per a qualsevol classe que l'implementa.
Paquet (Package)
Un paquet és un espai de noms per a l'organització de les classes i les interfícies d'una manera lògica. La col·locació del seu codi en els paquets fa grans projectes de programari més fàcils de manejar. En aquesta secció s'explica per què això és útil, i és una introducció a la interfície de programació d'aplicacions (API, Application Program Interface en anglès) que proporciona la plataforma Java .
Preguntes i exercicis
Utilitzeu les preguntes i exercicis que es presenten en aquesta secció per posar a prova la seva comprensió dels objectes , classes , herència , interfícies i paquets .
Entorns de desenvolupament per a programadors.
Eclipse
NetBeans
Per aprendre més.
Monogràfic NetBeans (castellà)
Monogràfic Java (castellà)
Web applications: Java, JavaScript, HTTP persistent client state mechanisms, i.e. Cookies