Sinflar. Ob'ektga yo'naltirilgan dasturlash Sinflar va ob'ektlar
Java ob'ektga yo'naltirilgan tildir, shuning uchun "class" va "ob'ekt" kabi tushunchalar unda asosiy rol o'ynaydi. Har qanday Java dasturini o'zaro ta'sir qiluvchi ob'ektlar to'plami sifatida qarash mumkin.
Ob'ektning shablonlari yoki tavsifi sinfdir va ob'ekt shu sinfning namunasini ifodalaydi. Quyidagi o'xshashlikni ham chizishingiz mumkin. Har birimiz inson haqida qandaydir tasavvurga egamiz - ikki qo'li, ikki oyog'i, boshi, tanasi va boshqalar. Ba'zi shablon mavjud - bu shablonni sinf deb atash mumkin. Haqiqatan ham mavjud bo'lgan shaxs (aslida ushbu sinfning namunasi) bu sinfning ob'ektidir.
Sinf class kalit so'zi yordamida aniqlanadi :
Bu holda sinf Shaxs deb ataladi. Sinf nomidan keyin jingalak qavslar qo'yiladi, ular orasiga sinf tanasi - ya'ni uning maydonlari va usullari joylashtiriladi.
Har qanday ob'ekt ikkita asosiy xususiyatga ega bo'lishi mumkin: holat - ob'ekt saqlaydigan ba'zi ma'lumotlar va xatti-harakatlar - ob'ekt bajarishi mumkin bo'lgan harakatlar.
Ob'ekt holatini sinfda saqlash uchun maydonlar yoki sinf o'zgaruvchilari ishlatiladi. Usullar sinfdagi ob'ektning harakatini aniqlash uchun ishlatiladi. Masalan, shaxsni ifodalovchi Person sinfi quyidagi ta'rifga ega bo'lishi mumkin:
1
2
3
4
5
6
7
8
|
class Person{
String name; // имя
int age; // возраст
void displayInfo(){
System.out.printf("Name: %s \tAge: %d\n", name, age);
}
}
|
Person klassi ikkita maydonni belgilaydi: ism shaxsning ismini, yoshi esa odamning yoshini bildiradi. Va displayInfo usuli ham aniqlangan, u hech narsani qaytarmaydi va bu ma'lumotlarni konsolga chop etadi.
Endi ushbu sinfdan foydalanamiz. Buning uchun biz quyidagi dasturni belgilaymiz:
1
2
3
4
5
6
7
8
5
10
5
12
13
14
15
|
public class Program{
public static void main(String[] args) {
Person tom;
}
}
class Person{
String name; // имя
int age; // возраст
void displayInfo(){
System.out.printf("Name: %s \tAge: %d\n", name, age);
}
}
|
Qoida tariqasida sinflar turli fayllarda aniqlanadi. Bunday holda, soddalik uchun biz bitta faylda ikkita sinfni aniqlaymiz. Shuni ta'kidlash joizki, bu holda faqat bitta sinf umumiy modifikatorga ega bo'lishi mumkin (bu holda, Program klassi) va kod faylining o'zi ushbu sinf nomi bilan nomlanishi kerak, ya'ni bu holda fayl chaqirilishi kerak. Program.java.
Sinf yangi turni ifodalaydi, shuning uchun biz ushbu turni ifodalovchi o'zgaruvchilarni aniqlashimiz mumkin. tomShunday qilib, bu erda asosiy usulda Person sinfini ifodalovchi o'zgaruvchi aniqlanadi . Ammo hozircha bu o'zgaruvchi hech qanday ob'ektga ishora qilmaydi va sukut bo'yicha u null qiymatiga ega . Umuman olganda, biz uni hali ishlata olmaymiz, shuning uchun biz birinchi navbatda Person sinfining ob'ektini yaratishimiz kerak.
Do'stlaringiz bilan baham: |