პოსტები ტეგით “Java”

Java: variables, stack and heap

პრეზენტაცია Java – ს ცვლადების და მათთან დაკავშირებული საკითხების შესახებ.

[slideshare id=2029002&doc=cst-presentation2-090921020408-phpapp01]

ტეგები: , ,

Java: აბსტრაქტული კლასები

განსხვავებით ჩვეულებრივი Java – ს კლასისგან აბსტრაქტრული კლასის ინსტანციაცია(კლასის ობიექტის შექმნა) შეუძლებელია. თავად Sun Microsystems – ის დოკუმენტაციაში აბსტრაქტული კლასის განმარტება დაახლოვებით ჟღერს შემდეგნაირად:

აბსტრაქტრული კლასი ეს არის კლასი რომელიც აღწერილია როგორც abstract(მითითებული აქვს abstract მოდიფიკატორი). აბსტრაქტული კლასი შესაძლოა შეიცავდეს ან არ შეიცავდეს აბსტრაქტულ მეთოდებს. აბსტრაქტული კლასის ინსტანციაცია შეუძლებელია, თუმცა შესაძლებელია მისი მემკვიდრე კლასების შექმნა.

რა საჭიროა ისეთი კლასი რომლის ობიექტის შექმნაც შეუძლებელია? ეს საჭიროა იმდენად რამდენადაც ნებისმიერი კლასი შესაძლოა იყოს საკმაოდ ზოგადი(აბსტრაქტული), რაც ნიშნავს იმას რომ ასეთ შემთხვევაში მიუხედავად იმისა რომ შესაძლებელია წინასწარ მეთოდების განსაზღვრა(კლასის სამუშაო ინტერფეისი) შეუძლებელია წინასწარ მოხდეს ყველა ამ მეთოდის რეალიზაცია. აბსტრაქტული კლასები ძირითადად გამოიყენება ისეთ შემთხვევებში როდესაც ვმუშაობთ მსგავსი მახასიათებლების მქონე კლასთა ჯგუფებთან, და შესაძლებელია გარკვეული საერთო მეთოდების რეალიზაცია, ხოლო ისეთი მეთოდები რომელთა რეალიზაცია დამოკიდებულია კონკრეტულ კლასზე აღიწერება როგორც აბსტრაქტული და მათ რეალიზაციაზე პასუხიმსგებლობას ეკისრებათ მემკვიდრე კლასებს(ქვე კლასები). სრულად »

ტეგები:

Java: ინტერფეისები

interface(ინტერფეისი) ჯავას ერთერთი ყველაზე მნიშვნელოვანი დეტალია. თავად სიტყვა ინტერფეისი საუკეთესოდ აღწერს მის დანიშნულებას, თუმცა უფრო კონკრეტულ მაგალითად შეგვიძლია განვიხილოთ თავად კლასი და კალსის ობიექტი.

რამდენადაც ვიცით ურთიერთქმედება კლასებთან და კლასის ობიექტებთან ხდება მათში განსაზღვრული მეთოდების მეშვეობით, ამ შემთხვევაში შეგვიძლია ვთქვათ რომ ის მეთოდები რომლის მეშვეობითაც ვმუშაობთ ობიექტთან არის ამ ობიექტის ინტერფეისი. სრულად »

ტეგები:

ინიციალიზაციის მიმდევრობა Java – ში

ინიციალიზაცია ჯავაში საკმაოდ ნიუანსური და ერთი შეხედვით საკმაოდ რთული საკითხია, თუმცა სინამდვილეში ყველაფერი ზედმეტად მარტივი და ლოგიკურია. ინიციალიზაცია იყოფა რამდენიმე ნაწილად და ყოველთვის ერთი და იგივე მიმდევრობით სრულდება მიუხედავად კონკრეტული იერარქიის სიღრმისა და სირთულისა.

პირველ რიგში მნიშვნელოვანია ვიცოდეთ თუ როგორ ხდება კლასების ჩატვირთვა ამ ენაში. ჯავაში კლასები იტვირთება დინამიურად საჭიროების მიხედვით და ეს ხდება მხოლოდ ერთხელ.

რა დროს იტვირთება კლასი? კლასის ჩატვირთვა ხდება მხოლოდ მაშინ როდესაც მივმართავთ მის რომელიმე სტატიკურ წევრს(იგულისხმება რომ ასეთ წევრს უნდა გააჩნდეს შესაბამისი წვდომის მოდიფიკატორი რათა მასზე წვდომა იყოს შესაძლებელი). გარდა კლასის ჩვეულებრივი სტატიკური ცვლადებისა და მეთოდებისა უნდა აღინიშნოს რომ კლასის კონსტრუქტორიც ასევე არის სტატიკური(თუმცა არაცხადად, რადგან მას არ ესაჭიროება static გასაღები სიტყვის მითითება). გამომდინარე აქედან შეგვიძლია ვთქვათ რომ კლასის ობიექტის შექმნისას როდესაც new ოპერატორის შემდეგ მივმართავთ სასურველი კლასის კონსტრუქტორს(მაგ. TestClass t = new TestClass()), სინამდვილეში მივმართავთ კლასის სტატიკურ წევრს და იმ შემთხვევაში თუ კლასი ჯერ არ არის ჩატვირთული ხდება მისი ჩატვირთვა. სრულად »

ტეგები:

Quercus – PHP in Java

აჟიტირებული ვარ სრული ამ სიტყვის მნიშნველობით… ასეთ რამეს მართლა არ ველოდი და ხელი მქონდა დიდი ხანია ჩაქნეული… ამასწინათ იკას ბლოგზე ვნახე პოსტი სათაურით: Breakthrough: Java Implementation of PHP5 თავისთავად დამაინტერესა(რატომღაც), დღეს გამოვნახე დრო და გავტესტე… სიმართლე უნდა ითქვას შედეგმა ყოველგვარ მოლოდინს გადააჭარბა…

PHP და Java ერთად? რაოდენ ირონიულადაც არ უნდა ჟღერდეს თურმე ეს შესაძლებელია. რა საჭიროა? მიჭირს კონკრეტული მაგალითის მოყვანა, თუმცა გავიხსენებ ერთი წლის წინანდელ შემთხვევას როდესაც ერთერთი მეგა კომპანიის(არა ქართული) რეპორტინგის სისტემაზე მუშაობისას როცა სკრიპტინგი აღმოჩნდა საჭირო(ამას გააჩნდა საფუძვლიანი მიზეზი) როგორ ვნატრობდი რომ Groovy – ის ნაცვლად PHP – ზე შემძლებოდა წერა… თუმცა ამის შესაძლებლობა მაშინ არ მომეცა.

მიუხედავად იმისა რომ ეს ძრავი ჯერ არ მუშაობს ბევრისათვის კარგად ნაცნობ Tomcat – ზე მიმაჩნია რომ არც ეს არის შორეული პერსპექტივა… რაც შეეხება ტესტირების შედეგებს…
სრულად »

ტეგები: ,

Singleton პატერნი – Java

ყველა სახელმძღვანელო რომელიც წამიკითხავს იწყება სწორედ ამ პატერნის აღწერით, რაც უდავოდ გამოწვეულია იმით რომ იგი წარმოადგენს ყველაზე მარტივს არსებულ პატერნებს შორის. სრულად »

ტეგები: ,

კონსტრუქტორები და ინსტანციაცია (კლასის ობიექტის შექმნა)

ყოველი კლასის ახალი ობიექტი იქმნება კლასის კონსტრუქტორის გამოძახებით. გარდა ამისა ასევე შეუძლებელია ახალი ობიექტის შექმნა არა მხოლოდ ობიექტის ფაქტიური კლასის კონსტრუქტორის გამოძახების გარეშე, არამედ ეს შეუძლებელია ყოველი მისი სუპერკლასის კონსტრუქტორის გამოძახების გარეშე. კონსტრუქტორი არის კოდის ის ნაწილი რომელიც სრულდება ყოველთვის როდესაც ხდება new ოპერატორის გამოყენება. სრულად »

ტეგები:

სტატიკური ცვლადები და მეთოდები

ზოგჯერ არსებობს აუცილებლობა იმისა რომ შევქმნათ კლასის ისეთი ელემენტი (წევრი) რომლის გამოყენებაც შესაძლებელი იქნება ამ კლასის რომელიმე ობიექტის (ეგზემპლარის) არსებობის გარეშე. ზოგადად კლასის ელემენტებზე მიმართვა ხორციელდება ამ კლასის ობიექტის მეშვეობით, თუმცა შესაძლებელია ისეთი ელემენტების შექმნა რომლების გამოყენებაც შესაძლებელია განსაზღვრული ობიექტის გარეშე. ამის განსახორციელებლად საჭიროა ელემენტი გამოვაცხადოთ როგორც static. როდესაც ელემენტი აღწერილია როგორც static მას შეიძლება მივმართოთ კლასის ჩატვირთვისთანავე იქამდე სანამ მოხდება ამ კლასის რომელიმე ობიექტის შექმნა. სტატიკურად შეიძლება გამოვაცხადოთ როგორც მეთოდები, ასევე ცვლადები. static-ის ყველაზე გავრცელებულ გამოყენებას წარმოადგენს main() მეთოდი. იგი აღწერილია როგორც static, რადგან მისი გამოძახება უნდა მოხდეს იქამდე სანამ მოხდება რაიმე ობიექტების შექმნა. სრულად »

ტეგები:

პირველი HelloWorld ვებ აპლიკაცია

ეს ტურორიალიც განკუთვნილია სტუდენტებისათვის, და დამწყები Java პროგრამისტებისთვის. დიდი მადლობა მიშა კაპანაძეს ტექსტის რედაქტირებისათვის, და ინსტალაციის ინსტრუქციის ლინუქსის ვერსიის დამატებისათვის. სრულად »

ტეგები:

პირველი Java პროგრამა

ეს პატარა ტუტორიალი დავწერე სტუდენტებისათვის. დარწმუნებული ვარ იგი გამოადგებათ დამწყებ Java პროგრამისტებისაც, ან უბრალოდ Java-თი დაინტერესებულ კოლეგებს. სრულად »

ტეგები: