Middle
შიდა კლასები რა არის და როგორ გამოიყენება პროგრამირებაში?
sobes.tech AI
პასუხი AI-სგან
შიდა კლასები — ეს არის კლასები, რომლებიც გამოცხადებულია სხვა კლასის შიგნით. ისინი საშუალებას აძლევენ ლოგიკურად ჯგუფურად მოათავსოთ კლასი, რომელიც გამოიყენება მხოლოდ ერთ ადგილას, ზრდიან ინკაფსულაციას და ამარტივებენ კოდის წაკითხვას.
შიდა კლასები იყოფა:
- სტატიკური (Static Nested Classes): არ აქვს წვდომა გარეგანი კლასის ნესტატიკური წევრებზე. შეიძლება შექმნათ გარეგანი კლასის ინстанციის გარეშე.
- ნესტატიკური (Inner Classes): აქვთ წვდომა ყველა გარეგანი კლასის წევრზე (შეიცვლება პირადი წევრებიც). ნესტატიკური შიდა კლასის ინстанციის შექმნა საჭიროებს გარეგანი კლასის ინстанციას.
გამოყენება:
- განხილვის დამალვა: შიდა კლასი შეიძლება გამოიყენოს როგორც დამხმარე კლასი, რომლის დეტალები გარედან არ უნდა იყოს ხელმისაწვდომი.
- ჯგუფավորում: ლოგიკურად დაკავშირებული კლასების ერთობლიობა.
- კოლბეკების / მოსმენის დამზადება: ხშირად გამოიყენება ანონიმური შიდა კლასების შექმნა ინტერფეისების ან აბსტრაქტული კლასების რეალიზაციისთვის.
- იტერატორები: შიდა კლასი მოსახერხებელია იტერატორის რეალიზაციისთვის, რადგან აქვს წვდომა კოლექციის შიდა მდგომარეობაზე.
მაგალითი (Java):
class OuterClass {
private int outerField;
// სტატიკური შიდა კლასი
static class StaticNestedClass {
void print() {
// არ აქვს წვდომა outerField-ზე
System.out.println("From StaticNestedClass");
}
}
// ნესტატიკური შიდა კლასი (Inner Class)
class InnerClass {
void print() {
// აქვს წვდომა outerField-ზე
System.out.println("outerField: " + outerField);
}
}
}
// სტატიკური შიდა კლასის ინстанციის შექმნა
OuterClass.StaticNestedClass staticNested = new OuterClass.StaticNestedClass();
staticNested.print();
// შიდა კლასის ინстанციის შექმნა
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.print();