Maxsus xatolik (Exception) yaratish uchun ishlatiladi.
if (age < 18) {
throw new IllegalArgumentException("Yosh yetarli emas");
}
Misol: Yosh tekshiruvi
Metod deklaratsiyasida xatoliklar tashqariga uzatilishini bildiradi.
public void readFile() throws IOException {
FileReader fr = new FileReader("file.txt");
}
Misol: Fayl o‘qishda xatoliklar uchun
Ko‘p oqimli (multithreading) muhitda ma’lumotlar xavfsizligini ta’minlaydi.
public synchronized void increment() {
count++;
}
Misol: Thread-safe hisoblagich
Obyekt ma’lum bir class’ga tegishli ekanligini tekshiradi.
if (obj instanceof String) {
System.out.println("Bu string");
}
Misol: Obyekt turini aniqlash
Joriy obyektga murojaat qilish uchun ishlatiladi.
public class Student {
String name;
Student(String name) {
this.name = name;
}
}
Misol: Konstruktor ichida nomdagi farqlarni ajratish
Ota klass (superclass) elementlariga murojaat qilish uchun ishlatiladi.
class Animal {
void sound() { System.out.println("Hayvon tovushi"); }
}
class Dog extends Animal {
void sound() {
super.sound();
System.out.println("Vov-vov");
}
}
Misol: Ota klass metodini chaqirish
Obyekt yaratilmasdan turib ishlatiladigan o‘zgaruvchi yoki metodni bildiradi.
public class MathUtils {
static int square(int x) {
return x * x;
}
}
Misol: Static metodni obyekt yaratmasdan chaqirish
O‘zgaruvchining qiymati o‘zgartirilmasligini, metod yoki klassni override qilinmasligini bildiradi.
final int MAX_USERS = 100;
final class Constants {
// Bu klassdan voris olib bo‘lmaydi
}
Misol: O‘zgarmas qiymat va vorislikni taqiqlash
Metod tanasiz bo‘lishi yoki klass to‘liq emasligini bildiradi. Bunday klassdan to‘g‘ridan-to‘g‘ri obyekt yaratilmaydi.
abstract class Shape {
abstract double area();
}
Misol: Har xil shakllar uchun umumiy strukturani berish
Faoliyatni belgilovchi, ammo implementatsiyasiz metodlar to‘plami. Klasslar bir nechta interface'ni implement qilishi mumkin.
interface Animal {
void makeSound();
}
class Dog implements Animal {
public void makeSound() {
System.out.println("Vov-vov");
}
}
Misol: Turli hayvonlar uchun umumiy interface
Cheklangan doiradagi qiymatlarning ro‘yxatini belgilaydi (misol: kunlar, holatlar va h.k.).
enum Day {
MONDAY, TUESDAY, WEDNESDAY
}
Misol: Haftaning kunlarini enum orqali ifodalash
Ma’lumotlar to‘plamini saqlash va ular ustida ishlash uchun ishlatiladi. ArrayList, HashMap, HashSet kabi ko‘plab turdagi kolleksiyalar mavjud.
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
Misol: List yordamida ma’lumotlar to‘plamini saqlash
Ma’lumotlar oqimini ketma-ket yoki parallel qayta ishlash imkonini beradi.
List<String> names = List.of("Ali", "Sami", "Alisher");
names.stream()
.filter(n -> n.startsWith("A"))
.forEach(System.out::println);
Misol: Harfi "A" bilan boshlanuvchi ismlarni chiqarish
Anonim funksiyalar bo‘lib, kodni qisqartirish va o‘qishni yengillashtirish uchun ishlatiladi.
List<Integer> nums = List.of(1, 2, 3);
nums.forEach(n -> System.out.println(n));
Misol: Har bir raqamni lambda orqali konsolga chiqarish
Ma’lumot turlarini parametr sifatida belgilash imkonini beradi. Kolleksiyalar bilan keng ishlatiladi.
class Box<T> {
T value;
void set(T value) { this.value = value; }
T get() { return value; }
}
Misol: Har qanday tipdagi qiymatni saqlovchi class
Avtomatik resurslarni yopish imkonini beradi. Fayl oqimlari bilan ishlashda ayniqsa foydali.
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line = br.readLine();
System.out.println(line);
} catch (IOException e) {
e.printStackTrace();
}
Misol: Faylni o‘qib, avtomatik yopish
Null qiymatlar bilan xavfsiz ishlash uchun mo‘ljallangan konteyner klass.
Optional<String> name = Optional.of("Adham");
name.ifPresent(n -> System.out.println(n));
Misol: Null tekshiruvisiz qiymat bilan ishlash