Įvadas

Aptarsime konstruktorių sąvoką ir kūrimą.

Naudojam įrankiai:

  • Eclipse Luna (4.4.0);
  • Java 7

Klasės

Java programavimo kalboje pagrindinis statybinis blokas yra klasė. Yra keletas ir kitų elementų, tačiau pagrinde programuojat tenka kurti programinį kodą Java klasėse. Java klasių pavadinimas paprastai yra daiktavardis nurodantis objekto tipą. Pvz. Automobilis, Sąskaita ir t.t. Klasės pavadinimas pradedamas didžiąja raide, o kiekvienas sekantis žodis klasėje taip pat pradedamas didžiąja raide, pvz. BankoSąskaita, AutomobilioVariklis. Nors ir leidžiama naudoti nacionalinius simbolius klasių pavadinimuose, paprastai klasių pavadinimuose jų reikėtų vengti. Dažniausiai programuojant Klasių pavadinimai yra angliški žodžiai. Tačiau tai gali keistis priklausomai nuo projekto specifikos.

Paketai

Java klasės paprastai dedamos į paketus. Gali būti klasė be nurodyto paketo. Tokiu atveju laikoma, kad tai yra paketas pagal nutylėjimą (angl. default package). Java klasių kūrimas pakete pagal nutylėjimą yra laikoma bloga programavimo praktika. Tai gali būti pateisinama, kai sukuriama klasė trumpam siekiant atklikti kažkokį testą ir iškart po to ši klasė yra ištrinama.

Java paketų pavadinimai taip pat turi tam tikras sudarymo taisykles. Jos atsirado iš poreikio užtikrinti unikalų klasių identifikavimą. Paprastai Java sukurtose sistemose yra naudojami šimtai ar net tūkstančiai klasių sukurtų skirtingų gamintojų. Pasitaiko, kad skirtingų gamintojų klasės turi identiškus pavadinimus. Jei klasių pavadinimai identiški, į jas galima kreiptis nurodant paketų pavadinimus, tačiau jei ir paketų pavadinimai sutampa, tai nėra kaip atskirti kuri klasė yra naudojama. Pavyzdžiui, bankinėje sistemoje sąskaitą aprašo klasė Account, kuri yra pakete bank.accounts ir šią klasę sukūrė kompanija XYZ, o kompanija ABC taip pat sukūrė klasę buhalterinės apskaitos sistemoje Account ir ši klasė yra bank.accounts pakete. Mes kuriame integracinį sprendimą tarp banko ir apskaitos sistemos. Sąskaitai aprašyti sukūrėme AdneraAccount klasę ir norėtume naudoti abi klases iš bankinės sistemos ir iš apskaitos sistemos, tačiau niekaip negalime jų atskirti ir tokiu atveju gautume Java kompiliatoriaus klaidą. Todėl, kad unikaliai identifikuoti klases yra naudojamas tam tikras susitarimas kaip kuriami paketų pavadinimai. Paprastai paketo pradžia yra apverstas įmonės domeno pavadinimas. Jei įmonės XYZ domenas yra xyz.com, tai paketų pavadinimai prasideda com.xyz. Toliau nurodomas sistemos pavadinimas ir kita identifikuojanti informacija. Tokiu atveju anksčiau paminėtas klases galėtume išsaugoti paketuose com.xyz.bank.accounts ir com.abc.bank.accounts paketuose. Ir norėdami panaudoti abi klases savo kuriamoje klasėje nurodant pilną pavadinimą su paketu.

Pratimas. Sukurti klasę CarRentSystem, kuri būtų pakete com.adnera.tutorial.crs Eclipse IDE. Čia crs paketo pavadinime reikškia "Car Rent System".

Sprendimas

1. Iš meniu pasirenkame File -> New -> Class

Atsidaro naujos klasės kūrimo langas. Jame nurodome paketo pavadinimą ir klasės pavadinimą. Taip pat pažymime check box'ą "public static void main(String[] args)" tam, kad būtų automatiškai sugeneruotas metodas programos paleidimui (plačiau apie tai kiek vėliau)

 

 

Pasitikriname ar mūsų išeities tekstų direktorija yra "CarRentSystem/src" lauke "Source folder" ir spaudžiame mygtuką "Finish". 

2. Eclipse sugeneruoja pagal mūsų nurodytus parametrus klasę ir ją atidaro redaktoriuje

Sistema mums sugeneravo tuščia klasę su vienu metodu, kurio pavadinimas "main".

Java klasės susideda iš laukų, kuriuose saugomi duomenys ir metodų, kuriuose programuojama logika.

Sugeneruotoje klasėje matome, kad pačiame viršuje yra komanda package com.zerotoherodev.tutorial.crs; Tai komanda nurodanti, kuriame pakete yra sukurta klasė. Paketo komanda turi būti pirma kodo eilutė klasės aprašyme išskyrus komentarus. Komentarai gali būti bet kurioje klasės aprašymo vietoje.

Toliau yra pačios klasės aprašymas. Klasę aprašome su Java kalboje rezervuotu žodžiu class ir po juo einančiu klasės pavadinimu. Prieš klasės apibrėžimą nurodomas jos matomumas. Mūsų atveju nurodyta, jog klasės matomumas yra public. Apie matomumą kalbėsime kiek vėliau.

Po klasės aprašymo eina joje esantis programinio kodo blokas. Java kalboje programinio kodo blokai išskiriami riestiniais skliaustais { } Kitose programavimo kalbose dažnai programinis blokas išskiriamas žodžiais begin ir end.

Programiniame klasės bloke yra aprašomas metodas. Šiuo metu nesigilinkime į jo konstrukciją. Tam, kad programa veiktų ir ją būtų galima įvykdyti, klasėje turi būti specialus main metodas, toks kokį matome sugeneruotame bloke.

Toliau metodo programiniame bloke matome komentarą. Java kalboje po ženklo // (du "slešai") esantis tekstas iki eilutės pabaigos laikomas komentaru. Tai vienos eilutės tipo komentarai. Jie gali būti nuo eilutės pradžios arba eiti po programinio kodo konstrukcijų. Keleto eilučių komentaras žymimas simboliais /* */  pavyzdžiui  /* Komentaras */

Pratimas. Papildyti sukurtą klasė komandą spausdinančią tekstą "Hello world!" ir paleisti programą.

Sprendimas

1. Ištriname komentarą.

2. Papildomą sugeneruotą klasę komanda System.out.println("Hello world!");

Dabar mūsų kalsė atrodo taip:

package com.zerotoherodev.tutorial.crs;

public class CarRentSystem {

	public static void main(String[] args) {
		System.out.println("Hello world!");
	}
}

3. Įvykdome klasę. Tam aktyvuojame vykdomoje klasėje ir pasirenkame iš įrankių juostos mygtuką Run

 4. Eclipse atidaro "konsolės" langą ir jame atspaudina tekstą "Hello world!"

 

Pagaliau turime veikiančią pirmąją Java programą !!!

System.out.println metodas išveda tekstą į standartinį "outputą". Eclipse atveju tai atidaromas specialus konsolės langas, jei programą leistume pvz. per Windows command prompt'ą, tai tekstas būtų išvestas į jį.

Eilutės Java kalboje išskiriamos dvigubomis kabutėmis. Java kalboje viengubomis kabutėmis išskiriami simboliai. Pvz. 'a', '%' ir t.t. Jei tarp viengubų kabučių parašysite keletą simbolių gausite kompiliatoriaus klaidą.

Užduotys

1. Sukurti klasę RecipeBook esančia pakete com.zerotoherodev.tutorial.rbook. Klasė turi atspausdinti tekstą "Tai receptų knyga".

2. Sukurti klasę TicketTerminal esančia pakete com.zerotoherodev.tutorial.tickets. Klasė turi atspausdinti tekstą "Sistema bilietų pirkimui".

Comments powered by CComment