Muzafferus
Staj günlükləri
Staj günlükləri · 17.11.2022

#9. Bu gün nə öyrəndim – 2022.11.17

1. Abstraction və Encapsulation fərqləri Bu yazıda OOP-nin əsas prinsiplərindən ikisi olan, birbiri ilə rahatlıqla qarışdırılan, bir-birnə yaxın iki məsələnin fərqinə…

1. Abstraction və Encapsulation fərqləri Bu yazıda OOP-nin əsas prinsiplərindən ikisi olan, birbiri ilə rahatlıqla qarışdırılan, bir-birnə yaxın iki məsələnin fərqinə baxacağıq. Abstraction bir classın hansı metodları var və nələr edir bunları bilmədən, sadəcə interface yaradaraq, o classa interface-i implement edərək, həmin classın methodlarını çağırmaqdır. Bir növ MVP düşünün, əlimizdə Contractor var və onunla Presenterin methodların çağırırıq, Presenterdə nələr var neçə method var bu bizə maraqlı deyil, biz Constractorun icazə verdiyi sərhədlər çərçivəsində presenterin methodlarını çağırırıq, arxada Presenter nə iş görür bizi maraqlandırmır. Encapsulationda isə bir classın dəyişənlərini getter və setter methodları ilə kənara accesini verib, birbaşa accesi private olaraq gizlədirik. Düşünün siglaton edirsiz və getter methodu ilə instansını qaytarırsız. Ətraflı oxumaq üçün bu yazıya baxın.

2. HashMap və HashTable-ın fərqi Bu yazıda qısaca HashMap-in null qəbul edə bilməsi, Hashtable-ın isə null qəbul edə bilməməsi qeyd edilib. Digər məsələ isə asixron threadlər ilə HashTable istifadə edilir, yox threadlər arası data manage yoxdursa HashTable istifadə edilir (fərqləri bu iki məsələdir). Əvvəl Hashtable olub sonra advanced olaraq HashMap yazılıb. Əgər asinxrod threadlərlə işləməyəcəksinizsə ümumi olaraq HashMap-dən istifadə edilir. Detallı bu yazıda oxuyun.

3. ==, euqals(), hasCode() Demək iki bərabər işarəsi (==) bir dəyişənin digəri ilə eyni refreansa saib olub olmamağını yoxlayır, dəyərlər bərabər ola bilər ama eyni dəyər olmaya bilər. hasCode bir dəyişənin yaddaşda olan dəyişəninin hash-ini verir. equal isə bu hash-lərin eyni olub-olmamasını, yəni iki dəyişənin eyni referansa sahib olub olmamasıı yoxlayır. Misal A dəyişəni yaratdıq və dəyəri "5" olsun, B dəyişəninidə ayrıca yaradaq və ona da "5" dəyərini verək. bunlar == iki bərabərliklə yoxlandıqda true verəcək ama iki fərqli dəyər (ayrı ayrı yaratdığımız "5"-lər) olduğu üçün equals false verəcək. amma B = A desəydik, eyni dəyişənə referans edəcəkləri üçün equals true olacaqdı. Detallı bura baxın.

Şərhlər

Gözlə…