პრეზენტაცია Java – ს ცვლადების და მათთან დაკავშირებული საკითხების შესახებ.
პოსტები ტეგით “Java”
Java: აბსტრაქტული კლასები
განსხვავებით ჩვეულებრივი Java – ს კლასისგან აბსტრაქტრული კლასის ინსტანციაცია(კლასის ობიექტის შექმნა) შეუძლებელია. თავად Sun Microsystems – ის დოკუმენტაციაში აბსტრაქტული კლასის განმარტება დაახლოვებით ჟღერს შემდეგნაირად:
აბსტრაქტრული კლასი ეს არის კლასი რომელიც აღწერილია როგორც abstract(მითითებული აქვს abstract მოდიფიკატორი). აბსტრაქტული კლასი შესაძლოა შეიცავდეს ან არ შეიცავდეს აბსტრაქტულ მეთოდებს. აბსტრაქტული კლასის ინსტანციაცია შეუძლებელია, თუმცა შესაძლებელია მისი მემკვიდრე კლასების შექმნა.
რა საჭიროა ისეთი კლასი რომლის ობიექტის შექმნაც შეუძლებელია? ეს საჭიროა იმდენად რამდენადაც ნებისმიერი კლასი შესაძლოა იყოს საკმაოდ ზოგადი(აბსტრაქტული), რაც ნიშნავს იმას რომ ასეთ შემთხვევაში მიუხედავად იმისა რომ შესაძლებელია წინასწარ მეთოდების განსაზღვრა(კლასის სამუშაო ინტერფეისი) შეუძლებელია წინასწარ მოხდეს ყველა ამ მეთოდის რეალიზაცია. აბსტრაქტული კლასები ძირითადად გამოიყენება ისეთ შემთხვევებში როდესაც ვმუშაობთ მსგავსი მახასიათებლების მქონე კლასთა ჯგუფებთან, და შესაძლებელია გარკვეული საერთო მეთოდების რეალიზაცია, ხოლო ისეთი მეთოდები რომელთა რეალიზაცია დამოკიდებულია კონკრეტულ კლასზე აღიწერება როგორც აბსტრაქტული და მათ რეალიზაციაზე პასუხიმსგებლობას ეკისრებათ მემკვიდრე კლასებს(ქვე კლასები). სრულად »
ტეგები: Java
Java: ინტერფეისები
interface(ინტერფეისი) ჯავას ერთერთი ყველაზე მნიშვნელოვანი დეტალია. თავად სიტყვა ინტერფეისი საუკეთესოდ აღწერს მის დანიშნულებას, თუმცა უფრო კონკრეტულ მაგალითად შეგვიძლია განვიხილოთ თავად კლასი და კალსის ობიექტი.
რამდენადაც ვიცით ურთიერთქმედება კლასებთან და კლასის ობიექტებთან ხდება მათში განსაზღვრული მეთოდების მეშვეობით, ამ შემთხვევაში შეგვიძლია ვთქვათ რომ ის მეთოდები რომლის მეშვეობითაც ვმუშაობთ ობიექტთან არის ამ ობიექტის ინტერფეისი. სრულად »
ტეგები: Java
ინიციალიზაციის მიმდევრობა Java – ში
ინიციალიზაცია ჯავაში საკმაოდ ნიუანსური და ერთი შეხედვით საკმაოდ რთული საკითხია, თუმცა სინამდვილეში ყველაფერი ზედმეტად მარტივი და ლოგიკურია. ინიციალიზაცია იყოფა რამდენიმე ნაწილად და ყოველთვის ერთი და იგივე მიმდევრობით სრულდება მიუხედავად კონკრეტული იერარქიის სიღრმისა და სირთულისა.
პირველ რიგში მნიშვნელოვანია ვიცოდეთ თუ როგორ ხდება კლასების ჩატვირთვა ამ ენაში. ჯავაში კლასები იტვირთება დინამიურად საჭიროების მიხედვით და ეს ხდება მხოლოდ ერთხელ.
რა დროს იტვირთება კლასი? კლასის ჩატვირთვა ხდება მხოლოდ მაშინ როდესაც მივმართავთ მის რომელიმე სტატიკურ წევრს(იგულისხმება რომ ასეთ წევრს უნდა გააჩნდეს შესაბამისი წვდომის მოდიფიკატორი რათა მასზე წვდომა იყოს შესაძლებელი). გარდა კლასის ჩვეულებრივი სტატიკური ცვლადებისა და მეთოდებისა უნდა აღინიშნოს რომ კლასის კონსტრუქტორიც ასევე არის სტატიკური(თუმცა არაცხადად, რადგან მას არ ესაჭიროება static გასაღები სიტყვის მითითება). გამომდინარე აქედან შეგვიძლია ვთქვათ რომ კლასის ობიექტის შექმნისას როდესაც new ოპერატორის შემდეგ მივმართავთ სასურველი კლასის კონსტრუქტორს(მაგ. TestClass t = new TestClass()), სინამდვილეში მივმართავთ კლასის სტატიკურ წევრს და იმ შემთხვევაში თუ კლასი ჯერ არ არის ჩატვირთული ხდება მისი ჩატვირთვა. სრულად »
ტეგები: Java
Quercus – PHP in Java
აჟიტირებული ვარ სრული ამ სიტყვის მნიშნველობით… ასეთ რამეს მართლა არ ველოდი და ხელი მქონდა დიდი ხანია ჩაქნეული… ამასწინათ იკას ბლოგზე ვნახე პოსტი სათაურით: Breakthrough: Java Implementation of PHP5 თავისთავად დამაინტერესა(რატომღაც), დღეს გამოვნახე დრო და გავტესტე… სიმართლე უნდა ითქვას შედეგმა ყოველგვარ მოლოდინს გადააჭარბა…
PHP და Java ერთად? რაოდენ ირონიულადაც არ უნდა ჟღერდეს თურმე ეს შესაძლებელია. რა საჭიროა? მიჭირს კონკრეტული მაგალითის მოყვანა, თუმცა გავიხსენებ ერთი წლის წინანდელ შემთხვევას როდესაც ერთერთი მეგა კომპანიის(არა ქართული) რეპორტინგის სისტემაზე მუშაობისას როცა სკრიპტინგი აღმოჩნდა საჭირო(ამას გააჩნდა საფუძვლიანი მიზეზი) როგორ ვნატრობდი რომ Groovy – ის ნაცვლად PHP – ზე შემძლებოდა წერა… თუმცა ამის შესაძლებლობა მაშინ არ მომეცა.
მიუხედავად იმისა რომ ეს ძრავი ჯერ არ მუშაობს ბევრისათვის კარგად ნაცნობ Tomcat – ზე მიმაჩნია რომ არც ეს არის შორეული პერსპექტივა… რაც შეეხება ტესტირების შედეგებს…
სრულად »
Singleton პატერნი – Java
ყველა სახელმძღვანელო რომელიც წამიკითხავს იწყება სწორედ ამ პატერნის აღწერით, რაც უდავოდ გამოწვეულია იმით რომ იგი წარმოადგენს ყველაზე მარტივს არსებულ პატერნებს შორის. სრულად »
ტეგები: Design Patterns, Java