- Dəyişəni tipi ilə elan etmək və ona qiymət mənimsətmək
- Məsələ üçün uyğun primitiv tipi seçmək
- Tam bölmə, qalıq və tiplərin çevrilməsi ilə düzgün hesablamalar aparmaq
Onlayn mağaza hər məhsulun adını, qiymətini, anbarda neçə ədəd qaldığını və endirimdə olub-olmadığını yadda saxlamalıdır. Proqramlar belə məlumatı dəyişənlərdə saxlayır. Java-da hər dəyişənin əvvəlcədən məlum olan tipi var və bu tip sonradan dəyişmir — belə dillərə statik tipli dillər deyilir.
Dəyişən elan etmək
Dəyişən yaratmaq üçün əvvəlcə tipi, sonra adı yazırsan və istəsən, = işarəsi ilə dərhal qiymət verirsən: int age = 14;. Sonradan dəyişənə yeni qiymət mənimsətmək olar, amma başqa tipdə qiymət yox: int dəyişəninə mətn yazmaq alınmayacaq.
public class Main {
public static void main(String[] args) {
String name = "Leyla";
int age = 14;
double height = 1.62;
boolean isStudent = true;
char grade = 'A';
System.out.println(name + " is " + age + " years old.");
System.out.println("Height: " + height + " m");
System.out.println("Student: " + isStudent + ", grade: " + grade);
age = age + 1;
System.out.println("Next year: " + age);
}
}Leyla is 14 years old. Height: 1.62 m Student: true, grade: A Next year: 15
Primitiv tiplər
Java-da səkkiz primitiv tip var — bunlar dilin ən sadə «kərpicləridir». Onlar yaddaşda nə qədər yer tutduqlarına və hansı qiymətləri saxlaya bildiklərinə görə fərqlənir. Tam ədədlər üçün adətən int, kəsr ədədlər üçün isə double seçilir.
| Tip | Ölçü | Nə saxlayır | Nümunə |
|---|---|---|---|
byte | 8 bit | −128-dən 127-yə qədər tam ədədlər | byte level = 5; |
short | 16 bit | −32 768-dən 32 767-yə qədər tam ədədlər | short year = 2026; |
int | 32 bit | təxminən ±2,1 milyard | int people = 10_000_000; |
long | 64 bit | təxminən ±9,2 · 10¹⁸ | long stars = 3_000_000_000L; |
float | 32 bit | kəsr ədəd, ~7 rəqəm dəqiqliklə | float t = 36.6f; |
double | 64 bit | kəsr ədəd, ~15–16 rəqəm dəqiqliklə | double price = 9.99; |
char | 16 bit | bir simvol (Unicode) | char grade = 'A'; |
boolean | – | true və ya false | boolean ok = true; |
long qiymətinin sonunda L, float qiymətinin sonunda f yazılır. Alt xətt _ böyük ədədləri oxumağı asanlaşdırır.String bu siyahıda yoxdur: o, primitiv tip deyil, sinifdir — ona görə də böyük hərflə yazılır. Sətirlərlə növbəti dərsdə ətraflı tanış olacaqsan. Diqqət et: char qiyməti tək dırnaqda ('A'), String isə qoşa dırnaqda yazılır.
byte 8 bitdən ibarətdir. Bitləri yandırıb-söndür: 8 bit 256 fərqli birləşmə verir. Java bu birləşmələrdən −128-dən 127-yə qədər ədədlər üçün istifadə edir.Hesab operatorları
Java-da +, -, *, / və % (bölmədən alınan qalıq) operatorları var. Ən vacib incəlik budur: iki tam ədədi böləndə nəticə də tam olur, kəsr hissə sadəcə atılır. Yəni 17 / 5 ifadəsinin qiyməti 3.4 deyil, 3-dür.
public class Main {
public static void main(String[] args) {
int a = 17;
int b = 5;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
System.out.println(17.0 / 5);
int count = 10;
count += 5;
count++;
System.out.println(count);
}
}22 12 85 3 2 3.4 16
Ədədlərdən biri kəsr ədəd olan kimi (17.0) nəticə də kəsr olur. count += 5 yazılışı count = count + 5-in qısa formasıdır; -=, *=, /= də eyni qayda ilə işləyir. count++ dəyişəni 1 vahid artırır, count-- isə 1 vahid azaldır.
Film 135 dəqiqə davam edir. Bu müddəti saat və dəqiqə ilə necə göstərmək olar?
Həllini göstərHəllini gizlət
135 / 60 = 2.Qalan dəqiqələr — qalıq:
135 % 60 = 15.System.out.println(135 / 60 + " h " + 135 % 60 + " min"); sətri 2 h 15 min çıxarır.Tiplərin çevrilməsi
Bəzən qiyməti bir tipdən digərinə keçirmək lazım olur. Kiçik tipdən böyük tipə (genişləndirmə, məsələn, int → double) Java özü və itkisiz çevirir. Böyük tipdən kiçik tipə (daraltma, məsələn, double → int) keçəndə isə məlumat itə bilər, ona görə də bunu tipi mötərizədə yazaraq açıq şəkildə tələb etmək lazımdır: (int) price.
public class Main {
public static void main(String[] args) {
int apples = 7;
double d = apples;
System.out.println(d);
double price = 9.99;
int whole = (int) price;
System.out.println(whole);
int sum = 7, people = 2;
System.out.println(sum / people);
System.out.println((double) sum / people);
System.out.println((int) 'A');
System.out.println((char) 66);
int max = Integer.MAX_VALUE;
System.out.println(max + 1);
}
}7.0 9 3 3.5 65 B -2147483648
(int) 9.99nəticəsi9-dur: kəsr hissə yuvarlaqlaşdırılmır, atılır.(double) sum / peopleifadəsində əvvəlcəsumdoubletipinə çevrilir, ona görə bölmə kəsr hissə ilə aparılır:3.5.charəslində ədəddir:'A'simvolunun kodu 65-dir, 66 isə'B'simvoludur.inttipinin ən böyük qiymətinə 1 əlavə edəndə daşma (overflow) baş verir: qiymət ən kiçik mənfi ədədə «fırlanır».
Əsas fikirlər
- Java statik tiplidir: dəyişən
tip ad = qiymət;şəklində elan olunur və tipi dəyişmir. - Səkkiz primitiv tip var:
byte,short,int,long,float,double,char,boolean;Stringisə sinifdir. - İki tam ədədin bölünməsi tam ədəd verir:
17 / 5=3,17 % 5=2. - Genişləndirmə avtomatikdir, daraltma üçün isə açıq çevirmə lazımdır:
(int) 9.99=9. finalsabit yaradır,varisə tipi kompilyatorun özünün müəyyən etməsinə imkan verir.
Özünü yoxla
10 sual. Hər düzgün cavab XP qazandırır.
System.out.println(17 / 5); ekrana nə çıxarır?