Da
li znate onaj osećaj kada razmišljate u C# programskom jeziku a onda trebate da
kodirate u Java programskom jeziku. Nije, da vam je sad to neki problem već vas
jednostavno iritira, kao kad bi ste rekli sami sebi što da radim nešto
jednostavno kad mogu isto komplikovanije. To je više osećaj jer C# programski
jezik poznajete. Ali to vam je samo na početku učenja Java programskog jezika.
Sve što više budete napredovali shvatićete da je Java programski jezik u nekim
složenijim i kompleksnijim situacijama mnogo jednostavniji i prosto ćete se
čuditi kako C# programski jezik komplikuje stvari. Vi koji ste na mom blogu i
ne znate ni jedan programski jezik, za vas će učenje Java programskog jezika
biti interesantno, ali slobodno malo zavirite i u C# programski jezik na ovom
blogu. Ova dva programska jezika se ne razlikuju mnogo iako su drugačiji
programski jezici. Ukoliko niste dobro prostudirali prethodni post Uvod u Javaprogramski jezik, savetujem Vam da to uradite. U zavisnosti da li kodirate samo
u običnom tekstualnom editoru ili u nekom od IDE Java okruženja, zavisi i kako
se započinje kodiranje Java programa. Ja sam u prošlom Java postu koristio VIM tekstualni
editor u Kali Linux operativnom sistemu da bi ste vi što više bili koncentrisani
na Java kod. Međutim, pratioci ovog bloga hoće IDE okruženje za Java programski
jezik, koriste Windows operativni sistem i insistiraju na beloj pozadini. Mislim
da zahtevi imaju smisla i odlučio sam da im izađem u susret. Zato pogledajte na
mom YouTube kanalu kako da instalirate Notepad++ ili Eclipse. Takođe sam linkovao video-a i u prethodnom Java postu. Sve u svemu vi sami birajte kako vama
odgovara da učite Java programski jezik. Programsko okruženje može biti drugačije
ali osnovni Java kod koji učite je isti.
What is your full name?
Manuel Radovanovic
Which year were you born?
1975
Manuel Radovanovic, you have 44 or 45 years.
TYPE OF VARIABLES
byte: Minimum: -128 Maximum: 127 - byte 1
short: Minimum: -32768 Maximum: 32767 - bytes 2
int: Minimum: -2147483648 Maximum: 2147483647 - bytes 4
long: Minimum: -9223372036854775808 Maximum: 9223372036854775807 - bytes 4
float: Minimum: 1.4E-45 Maximum: 3.4028235E38 - bytes 4
double: Minimum: 4.9E-324 Maximum: 1.7976931348623157E308 - bytes 4
bool can be true or false. - 1 byte
char can have only one character - 2 bytes.
String can have more than 2 billions characters.
( Java for Beginners - Play list on Manuel YouTube channel )
Kad
učite Java programski jezik, primetiće te u Java programima da svaka programska
aktivnost uvek se dešava u klasi i da baš ta činjenica čini Java programski
jezik objektno orjentisanim kao što je C# programski jezik. Programiranje vam
je u suštini veština da vi svojim kodom saopštite računaru da se ponaša na
odrešen način. Kad vi programirate, vi na neki način pišete vaš kod u obliku
naredbi u vidu jedne linije koda ili više grupisani redova koje zovemo iskazi.
Iskaze grupišete u metode, metode u klase i sve to uglavnom radite da ne
ponavljate pisanje istog koda u vašem projektu. Naravno, vaš kod mora biti
svrsishodan, optimizovan, testiran i bez greške. Vi treba da znate kako se nešto
programira, to učite od drugih ali isto tako neke stvari ćete programirati iz
vaše glave. Takođe, postoji više načina da se isprogramira neko određeno
rešenje ali se uvek traži najbolje i najjednostavnije. Što vam je kod
jednostavniji manje je prostora za greške. I nemojte se zavaravati; kako god da
programirate pojavljivaće se greške koje ćete ispravljati i to će vam uzimati
najviše vremena. Sad je najbolje da se prvo koncentrišite na osnovne komande u Java programskom jeziku ali i na prvo što obrađujemo; a to su promenjive i
konstante.
Promenjive
i konstante
Promenjiva
ili kako to Java programeri često nazivaju variabla je skladišna lokacija u
memoriji računara kojoj dodeljujete neku privremenu vrednost. Da bi vam to bilo
jasnije najbolje da promenjive zamislite kao male kutice poput kutica od
šibica. Zamislite da u svaku kuticu možete staviti samo jedan broj ili slovo
ili sliku itd. Znači, postoje različiti tipovi promenjivi kao i različite
kutice. Ne možete u kuticu za broj da stavite slovo. Tako i u promenjivu tipa Integer ne možete da stavite neku vrednost tipa String. Za promenjive kažemo da
čuvaju privremene vrednosti. To znači da promenjiva čuva vrednost dok vaš
program radi. Kad ugasite program i ponovo ga pokrenete on će zaboraviti sve
one vrednosti koje ste mu dodelili kad ste prvi put koristili program. Ako
hoćete da vaš program pamti neku vrednost stalno vi morate tu vrednost čuvati u
bazi podataka ili nekom fajlu. Tako jednostavno računari rade. Da bi vam stvari
bile još jasnije najbolje da odmah pređete na kodiranje. Molim vas nemojte samo
čitati blog, programirajte sa mnom. Samo kodiranjem će te naučiti programiranje.
Ukoliko koristite Linux operativni sistem, otvorite Terminal, pokrenite VIM tekstualni editor ili neki Java IDE ako ga imate već instaliranog u računaru i
program nazovite variables. Ako koristite IDE za Java programski jezik,
nazovite i paket i projekat i klasu variables. Unesite sledeći kod:
/*
* VARIABLES
* 21-FEB-2020
* MANUEL RADOVANOVIC
*/
public class variables {
public static void main(String[] args) {
}
Ovo
nam je neka osnova koju treba da sadrži svaka vaša konzolna aplikacija. U C# programskom jeziku imam naviku da komentar o programu pišem unutar opsega
klase, što možete videti i u našem prvom Java programu. Ali ovde to nije
slučaj, isto kao i što Java programeri stavljaju otvorenu vitičastu zagradu { u
istoj liniji koda, tako ćemo i mi pomalo da prihvatamo kulturu i navike Java programera. Ukoliko koristite Eclipse nemojte brisati:
package variables;
Java ima tri vrste komentara. Pored navedenih koje ćete stalno koristiti postoji i
dokumentacioni komentar koji počinje /** i završava se /* sekvencama. Koriste
se da informacije ugradite u sam program. Sa alatkom javadoc možete da te
informacije učitate i upišete u HTML datoteku. Međutim, to je neka druga
opširnija tema kojom ćemo se baviti tek pred kraj Java tutorijala. U navedenom
kodu smo napravili klasu i u njoj main metodu. Gotovo svaki Java program
počinje pozivanjem i izvršavanjem metode main(). Obratite pažnju da u C# programskom jeziku main() metoda se piše velikim slovom Main() što nije slučaj
u Java programskom jeziku. Metoda main() se sastoji od modifikatora public što
znači da je to javna metoda. Ona mora biti javna da bi se mogla pozvati izvan
koda klase. Ključna reč static omogućava da se metoda main() poziva bez
pravljenja instance klase dok ključna reč void samo znači da metoda ne vraća
nikakvu vrednost i main je rezervisan naziv za main() metodu i to se ne može
menjati. Argumente koje prihvata ova metoda su tipa String koji smešta svaki
ulazni karakter u jednodimenzionalan niz args. Nadam se da sada razumete
detaljno navedeni kod. Sada uvezite dve klase koje želimo da koristimo zajedno
sa našim programom. Jednostavno ukucajte sledeće linije iznad naziva klase:
import java.util.Calendar;
import java.util.Scanner;
Prva
klasa koju uvozimo jeste Scanner koja nam omogućava da uzimamo unos korisnika u
naš program, dok je druga klasa Calendar koja nam omogućava da dobijemo trenutnu
godinu u Integer formatu. Dodajte sledeće linije koda unutra metode main().
//
declaration the variables
String fullName;
int yearOfBirth, old;
U Java programskom jeziku promenjive se naravno prvo deklarišu pre upotrebe.
Deklaracija se pravi tako što se prvo navede tip promenjive a zatim promenjiva
ili što bi Java programeri rekli identifikator. Naravno, naziv promenjive je
case-sensitive što znači da Java programski jezik kao C# programski jezik
razlikuje mala i velika slova. Npr. Promenjiva i promenjiva nisu isto već dve
različite promenjive. Naziv promenjive ne možete započeti brojem ( 3promenjiva
), isto tako naziv promenjive ne može da sadrži specijalne karaktere i ne može
imati razmak. Promenjiva se inicijalizuje tako što joj se doda znak jednakosti
i vrednost promenjive koja mora da odgovara tipu promenjive. Prva prethodna
promenjiva je tipa String. Međutim, u javi klasa String je sasvim nešto drugo
nego u C# programskom jeziku, dok druge dve promenjive su tipa Integer.
Navedene promenjive nisu inicijalizovane, nije im dodata nikakva vrednost jer
hoćemo da vrednost unese korisnik. Unesite sledeću liniju koda.
//
declaration the constant
final int yearNow = Calendar.getInstance().get(Calendar.YEAR);
Sigurno
se pitate šta je ovo sad? Verovali ili ne ovo je inicijalizovana konstanta.
Konstante su vam slične promenjivim samo što kad im jednom dodelite neku
vrednost, tu vrednost ne možete da menjate. Znači konstante vam služe na primer
da ne morate uvek u kodu kucati kolika je PI vrednost u svom proračunu, nego
napravite konstantu PI i dodelite joj samo jednom vrednost matematičke PI i
onda je koristite gde god vam je ta vrednost potrebna u celom programu. Pa što
bi ste to radili kada možete napraviti promenjivu? Pa zato da njenu vrednost
niko nebi mogao promeniti, dobili bi ste grešku i zato što su brže. To jedino
nije slučaj u PHP programskom jeziku zato što njihove promenjive koriste simbol
$, tako da konstante nemaju istu vidljivost na spram promenjivih. Što se tiče
vidljivosti u našem primeru; naše promenjive i konstanta imaju vidljivost samo
na nivou metode main(). One se mogu kreirati i na nivou klase, ali nešto više
od toga; to bi bilo globalna promenjiva što se u Java kodu smatra lošom praksom
i neprihvatljivo. Isto tako u ovom našem programu ne bismo koristili konstantu
za našu trenutnu godinu, jer u ovom slučaju promenjiva bi bila logičnija da se
koristi, ali to je urađeno da bi smo demonstrirali kako se kreira konstanta.
Ukoliko ste C#
programer obratite pažnju da u Java programskom jeziku konstante koriste ključnu
reč final umesto const. Ostala linija koda je upotreba klase Calendar i njene
metode YEAR kako bi smo dobili tekuću godinu tipa Integer. Dodajte sledeći kod.
System.out.println();
// use
the scanner to get the input from user
Scanner input = new Scanner(System.in);
System.out.println("What is your full name?");
fullName = input.nextLine();
System.out.println("Which year were you born?");
yearOfBirth = input.nextInt();
//
close the scanner
input.close();
old = yearNow - yearOfBirth;
System.out.println();
System.out.println();
System.out.println(fullName + ",
you have " + (old - 1) + " or " + old + " years.");
System.out.println();
U
navedenom kodu prvo inicijalizujemo klasu Scanner koristeći argument System.in
kako bi smo mogli dobiti unose od korisnika. Kada tražimo od korisnika String
tada koristimo metodu nextLine() dok kod Integera nextInt(). To nema u C# programskom jeziku. U našem programu tražimo od korisnika ime i prezime, zatim
godinu rođenja. Program oduzima godinu rođenja od trenutne godine i dodeljuje
rezultat promenjivoj old. Konstanta se ne može menjati ali se može koristiti u
proračunatima. Na kraju program ispisuje koliko imate godina. Pogledajte kako
izgleda celi kod:
package variables;
import java.util.Calendar;
import java.util.Scanner;
/*
* VARIABLES
* 21-FEB-2020
* MANUEL RADOVANOVIC
*/
public class variables {
public static void main(String[] args) {
//
declaration the variables
String fullName;
int yearOfBirth, old;
//
declaration the constant
final int yearNow = Calendar.getInstance().get(Calendar.YEAR);
System.out.println();
// use
the scanner to get the input from user
Scanner input = new Scanner(System.in);
System.out.println("What is your full name?");
fullName = input.nextLine();
System.out.println("Which year were you born?");
yearOfBirth = input.nextInt();
//
close the scanner
input.close();
old = yearNow - yearOfBirth;
System.out.println();
System.out.println();
System.out.println(fullName + ", you have " + (old - 1) + " or " + old + "
years.");
System.out.println();
}
}
Kad
kompajlirate ovaj program, tačnije variables.java fajl komandom javac
variables.java dobićete novi fajl variables.class. Taj izvršni fajl pokrenite
komandom java variables i dobićete slične rezultate u zavisnosti od vašeg imena
i prezimena i vaše godina rođenja:
Manuel Radovanovic
Which year were you born?
1975
Manuel Radovanovic, you have 44 or 45 years.
Isti
program možete pogledati i na video-u:
( Java for Beginners - 06. Declarations of The Variables and The Constant )
Tipovi
podataka u Java programskom jeziku
Ukoliko
pitate nekog C# programera kako se dele tipovi podataka u C# programskom jeziku, dobićete
jasan i precizan odgovor na vrednosne i referentne tipove. Međutim, podela
tipova u Java programskom jeziku ima drugačiju podelu, pa se deli na proste
tipove podataka i na složene tipove podataka. Prosti tipovi podataka su
booelan, byte, char, short, int, long, float, double dok su složeni nizovi i
objekti.
Prosti
tipovi
·
Celobrojni
1.
byte
2.
short
3.
int
4.
long
·
Sa pokretnim zarezom
1.
float
2.
double
·
Znakovni
1.
char
·
Logički
1.
boolean
Složeni
tipovi
1.
Nizovi
2.
Objekti
U Java programskom jeziku imate manje tipova promenjivih nego u C# programskom
jeziku. Java programski jezik je strogo tipiziran jezik. Za razliku od C# programskog jezika, prosti tipovi nisu objekat ili na primer String nije skup
znakova već je to u Java programskom jeziku sasvim nešto drugačije. Na primer
tip podataka Integer je uvek 4 bita dok u C# programskom jeziku to zavisi od
vašeg procesora i operativnog sistema. U Java programskom jeziku tipovi promenjivih moraju biti
strogo određeni zato što Java programski jezik funkcioniše na različitim
operativnim sistemima. Vi možete praviti vlastite složenije tipove podataka
baziranim na prostim tipovima u Java programskom jeziku ali nema automatskog
nametanja tipa podataka niti pretvaranja nekompatibilnih tipova podataka. Zar
ovaj Java programski jezik nije interesantan? Meni lično je zaista čudan i
nekako drugačiji. Napravimo novi program i nazovite ga variabletypes. Unesite
odmah celi kod programa. Nemojte koristiti copy – paste već kucajte kod da
osetite kako je kodirati u Java programskom jeziku. Takođe ćete bolje pamtiti.
package typeofvariables;
/*
* TYPE OF VARIABLES
* 21-FEB-2020
* MANUEL RADOVANOVIC
*/
public class typeofvariables {
public static void main(String[] args) {
System.out.println();
System.out.println(" TYPE OF VARIABLES");
System.out.println();
byte byteMin = Byte.MIN_VALUE; // 1 byte
byte byteMax = Byte.MAX_VALUE;
System.out.println(" byte: Minimum: " + byteMin + "
Maximum: " + byteMax + " - byte 1");
short shortMin = Short.MIN_VALUE; // 2 bytes
short shortMax = Short.MAX_VALUE;
System.out.println(" short: Minimum: " + shortMin + "
Maximum: " + shortMax + " - bytes 2");
int intMin = Integer.MIN_VALUE; // 4 bytes
int intMax = Integer.MAX_VALUE;
System.out.println(" int: Minimum: " + intMin + "
Maximum: " + intMax + " - bytes 4");
long longMin = Long.MIN_VALUE; // 8 bytes
long longMax = Long.MAX_VALUE;
System.out.println(" long: Minimum: " + longMin + "
Maximum: " + longMax + " - bytes 4");
System.out.println();
float floatMin = Float.MIN_VALUE; // 4 bytes
float floatMax = Float.MAX_VALUE;
System.out.println(" float: Minimum: " + floatMin + "
Maximum: " + floatMax + " - bytes 4");
double doubleMin = Double.MIN_VALUE; // 8 bytes
double doubleMax = Double.MAX_VALUE;
System.out.println(" double: Minimum: " + doubleMin + "
Maximum: " + doubleMax + " - bytes 4");
System.out.println();
System.out.println(" bool can be true or false. - 1 byte");
System.out.println(" char can have only one character - 2 bytes.");
System.out.println(" String can have more than 2 billions characters.");
System.out.println();
}
}
Prvo
što možete primetiti da u navedenom primeru ne morate importovati ni jednu
klasu. Svaki prosti tip ima minimalnu MIN_VALUE i maksimalnu MAX_VALUE maksimalnu statičku metodu,
što nam omogućava da lako kažete programu da vam prikaže minimalne i maksimalne
vrednosti svakog primitivnog tipa podataka. Obratite pažnju na:
System.out.println();
Ovu liniju koda koristite kada želite da preskočite red u konzoli ili terminalu. Kako da
izbrišete celi ekran? Mislim da to ne možete da radite kada koristite Windows operativni sistem. To nije jednostavno kao u C# programskom jeziku jer Java programski jezik ne pripada Microsoft korporaciji. Pokrenite ili kompajlirate
program, rezultati će biti isti bez obzira koji računar ili operativni sistem
koristite.
byte: Minimum: -128 Maximum: 127 - byte 1
short: Minimum: -32768 Maximum: 32767 - bytes 2
int: Minimum: -2147483648 Maximum: 2147483647 - bytes 4
long: Minimum: -9223372036854775808 Maximum: 9223372036854775807 - bytes 4
float: Minimum: 1.4E-45 Maximum: 3.4028235E38 - bytes 4
double: Minimum: 4.9E-324 Maximum: 1.7976931348623157E308 - bytes 4
bool can be true or false. - 1 byte
char can have only one character - 2 bytes.
String can have more than 2 billions characters.
Kako
se kodira navedeni program isto možete pogledati i na video-u:
( Java for Beginners - 07. Minimum and Maximum Values of The Variable Types )
Nema komentara:
Objavi komentar