{"id":586,"date":"2020-03-31T11:11:00","date_gmt":"2020-03-31T11:11:00","guid":{"rendered":"https:\/\/www.juniorjavadeveloper.pl\/?p=586"},"modified":"2020-04-01T10:12:32","modified_gmt":"2020-04-01T10:12:32","slug":"ukrywamy-hermetyzujemy-nasz-kod-w-klasie-kod-java-intellij-krok-po-kroku","status":"publish","type":"post","link":"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/03\/31\/ukrywamy-hermetyzujemy-nasz-kod-w-klasie-kod-java-intellij-krok-po-kroku\/","title":{"rendered":"Ukrywamy, hermetyzujemy nasz kod w klasie &#8211; kod Java, IntelliJ, krok po kroku"},"content":{"rendered":"<p class=\"wp-block-paragraph\">W poprzednich artyku\u0142ach opisa\u0142em teori\u0119 i pokaza\u0142em przyk\u0142ady kodu dotycz\u0105ce tworzenia <a rel=\"noreferrer noopener\" aria-label=\"pierwszej klasy w j\u0119zyku Java (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/03\/07\/pierwsza-klasa-kod-java-intellij-krok-po-kroku\/\" target=\"_blank\">pierwszej klasy w j\u0119zyku Java<\/a>, jak i gdzie zapisa\u0107 <a rel=\"noreferrer noopener\" aria-label=\"warto\u015bci w klasie (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/03\/14\/wartosci-w-pierwszej-klasie-kod-java-intellij-krok-po-kroku\/\" target=\"_blank\">warto\u015bci w klasie<\/a> oraz jak wykonywa\u0107 <a rel=\"noreferrer noopener\" aria-label=\"dzia\u0142ania na klasie (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/03\/21\/dzialania-w-pierwszej-klasie-kod-java-intellij-krok-po-kroku\/\" target=\"_blank\">dzia\u0142ania na klasie<\/a>. Teraz przyszed\u0142 czas na ukrywanie, hermetyzowanie naszego kodu w klasie przed niepowo\u0142anym dost\u0119pem z innych fragment\u00f3w kodu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dlaczego mieliby\u015bmy ukrywa\u0107 nasz kod przed innymi klasami, developer&#8217;ami? W jaki spos\u00f3b osi\u0105gn\u0105\u0107 hermetyzacj\u0119 kodu? Dlaczego jest to tak wa\u017cne? Hermetyzacja jest jedn\u0105 z trzech zasad programowania obiektowego, czyli: dziedziczenie, polimorfizm i hermetyzacja.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W j\u0119zyku Java hermetyzacja realizowana jest przez s\u0142owo kluczowe <strong>private<\/strong>, kt\u00f3re mo\u017ce by\u0107 u\u017cywane dla klasy, metody oraz zmiennej.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ private - na poziomie klasy\nprivate class Notebook {}\n\n\/\/ private - na poziomie metody\nprivate void goToPage(int page) {}\n\n\/\/ private - na poziomie zmiennej\nprivate int currentPage;<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dlaczego ukrywanie, hermetyzacja kodu przed innymi klasami jest taka wa\u017cna? Maj\u0105c wiedz\u0119 z poprzednich artyku\u0142\u00f3w wyobra\u017amy sobie klas\u0119 Thermostat, termostat umo\u017cliwia utrzymywanie zadanej temperatury, wprowadzana temperatura jest za pomoc\u0105 klawiatury urz\u0105dzenia (nie pokr\u0119t\u0142a). Termostat jest po\u0142\u0105czony z urz\u0105dzeniem, kt\u00f3re wydziela ciep\u0142o np. silnik samochodu i dba o prawid\u0142ow\u0105 temperatur\u0119 pracy silnika. Je\u017celi zmienna przechowuj\u0105ca ustawion\u0105 temperatur\u0119 nie mia\u0142a by s\u0142owa kluczowego <strong>private<\/strong>, to mo\u017cna w dowolny spos\u00f3b zmieni\u0107 temperatur\u0119 i doprowadzi\u0107 do uszkodzenia silnika.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aby unikn\u0105\u0107 wy\u017cej opisanej sytuacji nale\u017cy zmienne\/pola\/atrybuty klasy zrobi\u0107 prywatnymi poprzez u\u017cycie s\u0142owa kluczowego <strong>private<\/strong>. Dodatkowo nale\u017cy doda\u0107 warunek sprawdzaj\u0105cy czy podana warto\u015b\u0107 temperatury dla termostatu mie\u015bci si\u0119 w granicach poprawnej pracy urz\u0105dzenia, np. 60 &#8211; 100 \u00b0C.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Poni\u017cej przyk\u0142ad kodu ze zmienn\u0105 prywatn\u0105.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class Thermostat {\n    private double temperature;\n}<\/pre>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Poni\u017cej pr\u00f3ba u\u017cycia zmiennej <strong>temperature<\/strong> dla klasy <strong>Thermostat<\/strong>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CarEngineMain {\n    public static void main(String[] args) {\n        Thermostat thermostat = new Thermostat();\n\/\/        thermostat.temperature = 99.99;\n    }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nie mo\u017cemy skorzysta\u0107 ze zmiennej <strong>temperature<\/strong> poniewa\u017c jest ona prywatna i tylko metody w klasie <strong>Thermostat<\/strong> mog\u0105 z niej korzysta\u0107. Pr\u00f3ba dost\u0119pu do zmiennej prywatnej ko\u0144czy si\u0119 b\u0142\u0119dem kompilacji, w tym przypadku otrzymujemy komunikat: &#8216;temperature&#8217; has private access in &#8216;pl.juniorjavadeveloper.java.first.clazz.encatsulation.Thermostat&#8217;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W takim razie co nale\u017cy zrobi\u0107, aby zmieni\u0107 warto\u015b\u0107 zmiennej prywatnej? Nale\u017cy skorzysta\u0107 z w\u0142asnej metody publicznej, kt\u00f3ra ustawi warto\u015b\u0107 dla pola temperature w klasie Thermostat. Mo\u017cemy zrobi\u0107, to na kilka sposob\u00f3w, jednym z nich jest stworzenie dowolnej metody, kt\u00f3ra jako parametr b\u0119dzie przyjmowa\u0107 zadan\u0105 temperatur\u0119. Drugim sposobem jest skorzystanie z metod get\/set, kt\u00f3re s\u0105 konwencj\u0105 wykorzystywan\u0105 przez j\u0119zyk Java.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Poni\u017cej pierwszy spos\u00f3b dost\u0119pu do zmiennych za pomoc\u0105 w\u0142asnej metody.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class Thermostat {\n    private double temperature;\n\n    \/\/ metoda publiczna zmieniaj\u0105ca warto\u015b\u0107 temperatury termostatu\n    public void changeTemp(double newTemperature) {\n        this.temperature = newTemperature;\n    }\n\n    \/\/ metoda publiczna zwracaj\u0105za warto\u015b\u0107 temperatury termostatu\n    public double showTemp() {\n        return this.temperature;\n    }\n}\n<\/pre>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Poni\u017cej przyk\u0142ad u\u017cycia metod operuj\u0105cych na zmiennej temperature dla klasy Thermostat.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CarEngineMain {\n    public static void main(String[] args) {\n        Thermostat thermostat = new Thermostat();\n\/\/        thermostat.temperature = 99.99;\n\n        thermostat.changeTemp(80.0);\n        double showTemp = thermostat.showTemp();\n        System.out.println(\"Temperatura dla termostatu: \" + showTemp);\n    }\n}<\/pre>\n\n\n<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><div class=\"wp-block-image\"><figure class=\"aligncenter size-medium\"><a href=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"162\" src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-300x162.png\" alt=\"Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 kod Java, IntelliJ, krok po kroku - w\u0142asne metody\" class=\"wp-image-593\" srcset=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-300x162.png 300w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-1024x554.png 1024w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-768x415.png 768w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-1000x541.png 1000w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-800x433.png 800w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-600x324.png 600w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00-400x216.png 400w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-00.png 1058w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption>Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 kod Java, IntelliJ, krok po kroku &#8211; w\u0142asne metody<\/figcaption><\/figure><\/div>\n<\/body><\/html>\n\n\n\n<p class=\"wp-block-paragraph\">Rozbudujemy powy\u017cszy kod z w\u0142asnymi metodami o warunek sprawdzaj\u0105cy poprawno\u015b\u0107 ustawianej temperatury i sprawdzimy jego dzia\u0142anie. Metoda main() pozostaje bez zmian, wynik programu b\u0119dzie przedstawiony na konsoli.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public void changeTemp(double newTemperature) {\n    if (newTemperature >= 60 &amp;&amp; newTemperature &lt;= 100) {\n        this.temperature = newTemperature;\n    } else {\n        System.out.println(\"Niepoprawna warto\u015b\u0107 temperatury!\");\n    }\n}<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    public static void main(String[] args) {\n        Thermostat thermostat = new Thermostat();\n\/\/        thermostat.temperature = 99.99;\n\n        thermostat.changeTemp(101.0);\n        double showTemp = thermostat.showTemp();\n        System.out.println(\"Temperatura dla termostatu: \" + showTemp);\n    }<\/pre>\n\n\n<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><div class=\"wp-block-image\"><figure class=\"aligncenter size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"163\" src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-300x163.png\" alt=\"Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 kod Java, IntelliJ, krok po kroku \u2013 w\u0142asne metody z warunkiem\" class=\"wp-image-596\" srcset=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-300x163.png 300w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-1024x557.png 1024w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-768x418.png 768w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-1000x544.png 1000w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-800x435.png 800w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-600x326.png 600w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01-400x218.png 400w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/03\/hermetyzacja-w-pierwszej-klasie_00_konsola-01.png 1048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption>Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 kod Java, IntelliJ, krok po kroku \u2013 w\u0142asne metody z warunkiem<\/figcaption><\/figure><\/div>\n<\/body><\/html>\n\n\n\n<p class=\"wp-block-paragraph\">Jak wida\u0107 na powy\u017cszym zrzucie ekranu, temperatura termostatu nie zosta\u0142a zmieniona, dzia\u0142a na ustawieniach pocz\u0105tkowych.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Drugim sposobem na zmian\u0119 warto\u015bci dla zmiennych w klasie jest wykorzystanie metod get\/set (getter\/setter) zgodnie z konwencj\u0105 nazewnicz\u0105 j\u0119zyka Java. Co do zasady metody get\/set nie powinny zawiera\u0107 logiki np. warunk\u00f3w sprawdzaj\u0105cych warto\u015bci zmiennych. O konwencji nazewniczej napisz\u0119 wi\u0119cej za chwil\u0119, na razie poka\u017c\u0119 przyk\u0142adowy kod oraz jak <strong>wygenerowa\u0107 getter\/setter w IntelliJ IDEA u\u017cywaj\u0105c skr\u00f3tu ALT + Insert<\/strong> (kursor w dowolnym miejscu w klasie).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"> public class Thermostat {\n    private double temperature;\n\n    public double getTemperature() {\n        return temperature;\n    }\n\n    public void setTemperature(double temperature) {\n        this.temperature = temperature;\n    }\n}<\/pre>\n\n\n\n<style id=\"bwg-style-0\">      #bwg_container1_0 #bwg_container2_0 .image_browser_images_conteiner_0 * {        -moz-box-sizing: border-box;        box-sizing: border-box;      }      #bwg_container1_0 #bwg_container2_0 .image_browser_images_conteiner_0{\t\tbackground-color: rgba(245, 245, 245, 0.90);\t\ttext-align: center;\t\twidth: 100%;\t\tborder-style: none;\t\tborder-width: 2px;\t\tborder-color: #F7F7F7;\t\tpadding: 4px;\t\tborder-radius: 0;\t\tposition:relative;      }      #bwg_container1_0 #bwg_container2_0 .image_browser_images_0 {\t\tdisplay: inline-block;\t\t-moz-box-sizing: border-box;\t\tbox-sizing: border-box;\t\tfont-size: 0;\t\ttext-align: center;\t\tmax-width: 100%;\t\twidth: 100%;      }      #bwg_container1_0 #bwg_container2_0 .image_browser_image_buttons_conteiner_0 {\t\ttext-align: center;      }      #bwg_container1_0 #bwg_container2_0 .image_browser_image_buttons_0 {\t\tdisplay: inline-block;\t\twidth:100%;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_image_0 {        background-color: rgba(235, 235, 235, 0.80);\t\ttext-align: center;\t\tdisplay: inline-block;\t\tvertical-align: middle;\t\tmargin: 2px auto;\t\tpadding: 4px;\t\tborder-radius: 0;\t\tborder: 1px none #F5F5F5;\t\tbox-shadow: ;\t\tmax-width: 800px;\t\twidth: 100%;\t\t\/*z-index: 100;*\/\t\tposition: relative;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_alt_0{\t\tdisplay: table;\t\twidth: 100%;\t\tfont-size: 15px;\t\tfont-family: Ubuntu;\t\tcolor: #000000;\t\ttext-align:center;\t\tpadding-left: 8px;        word-break: break-word;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_img_0 {        padding: 0 !important;\t\tmax-width: 100% !important;\t\theight: inherit !important;\t\twidth: 100%;      }      @media only screen and (max-width : 320px) {\t\t#bwg_container1_0 #bwg_container2_0 .displaying-num_0 {\t\t  display: none;\t\t}\t\t#bwg_container1_0 #bwg_container2_0 .bwg_image_alt_0 {\t\t  font-size: 10px !important;\t\t}\t\t#bwg_container1_0 #bwg_container2_0 .bwg_watermark_text_0,\t\t#bwg_container1_0 #bwg_container2_0 .bwg_watermark_text_0:hover {\t\t  font-size: 10px !important;\t\t  text-decoration: none;\t\t  margin: 4px;\t\t  font-family: segoe ui;\t\t  color: #FFFFFF !important;\t\t  opacity: 0.30;\t\t  text-decoration: none;\t\t  position: relative;\t\t  z-index: 10141;\t\t}\t\t#bwg_container1_0 #bwg_container2_0 .bwg_image_browser_image_description_0 {\t\t  color: #000000;\t\t  display: table;\t\t  width: 100%;\t\t  text-align: left;\t\t  font-size: 8px !important;\t\t  font-family: Ubuntu;\t\t  padding: 8px 8px 8px 8px;\t\t  \/*word-break: break-all;*\/\t\t  border-style: none;\t\t  background-color: #EBEBEB;\t\t  border-radius: 0;\t\t  border-width: 1px;\t\t}\t\t#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a {\t\t  font-size: 10px !important;\t\t}      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_image_desp_0 {\t\t\t\tdisplay: table;\t\t\t\tclear: both;\t\t\t\ttext-align: center;        padding: 0px 5px 0px 5px;\t\t\t\twidth: 100%;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_image_description_0 {        color: #000000;\t\tdisplay: table;\t\twidth: 100%;\t\ttext-align: left;\t\tfont-size: 15px;\t\tfont-family: Ubuntu;\t\tpadding: 8px 8px 8px 8px;\t\tword-break: break-word;\t\tborder-style: none;\t\tbackground-color: #EBEBEB;\t\tborder-radius: 0;\t\tborder-width: 1px;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_image_alt_0 {      \tdisplay:table;        clear: both;        text-align: center;        padding: 8px;        width: 100%;      }      \/*watermark*\/      #bwg_container1_0 #bwg_container2_0 .bwg_watermark_text_0,      #bwg_container1_0 #bwg_container2_0 .bwg_watermark_text_0:hover {        text-decoration: none;        margin: 4px;        font-size: 20px;        font-family: segoe ui;        color: #FFFFFF !important;        opacity: 0.30;        position: relative;        z-index: 10141;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_image_contain_0{        position: absolute;        text-align: center;        vertical-align: middle;        width: 100%;        height: 100%;        cursor: pointer;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_watermark_contain_0{        display: table;        vertical-align: middle;        width: 100%;        height: 100%;      }\t       #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_watermark_cont_0{        display: table-cell;        text-align: ;        position: relative;        vertical-align: ;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_watermark_0{\t\tdisplay: inline-block;\t\toverflow: hidden;\t\tposition: relative;\t\tvertical-align: middle;\t\tz-index: 10140;\t\twidth: 90px;\t\tmax-width: 11.25%;\t\tmargin: 10px 10px 10px 10px ;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_watermark_text_0{        display: inline-block;\t\toverflow: hidden;\t\tposition: relative;\t\tvertical-align: middle;\t\tz-index: 10140;\t\tmargin: 10px 10px 10px 10px;      }      #bwg_container1_0 #bwg_container2_0 .bwg_image_browser_watermark_img_0{        max-width: 100%;        opacity: 0.30;        position: relative;        z-index: 10141;      }      #bwg_container1_0 #bwg_container2_0 .bwg_none_selectable {        -webkit-touch-callout: none;        -webkit-user-select: none;        -khtml-user-select: none;        -moz-user-select: none;        -ms-user-select: none;        user-select: none;       ecoration: none;    }    #bwg_container1_0 #bwg_container2_0 .bwg_gal_title_0 {      background-color: rgba(0, 0, 0, 0);      color: #323A45;      display: block;      font-family: Ubuntu;      font-size: 16px;      font-weight: bold;      padding: 2px;      text-shadow: 0px 0px 0px #888888;      text-align: center;    }    <\/style>    <div id=\"bwg_container1_0\"         class=\"bwg_container bwg_thumbnail bwg_image_browser\"         data-right-click-protection=\"0\"         data-bwg=\"0\"         data-scroll=\"0\"         data-gallery-type=\"image_browser\"         data-gallery-view-type=\"image_browser\"         data-current-url=\"\/en\/wp-json\/wp\/v2\/posts\/586\"         data-lightbox-url=\"https:\/\/www.juniorjavadeveloper.pl\/wp-admin\/admin-ajax.php?action=GalleryBox&#038;current_view=0&#038;gallery_id=5&#038;tag=0&#038;theme_id=1&#038;shortcode_id=10&#038;sort_by=order&#038;order_by=asc&#038;current_url=%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F586\"         data-gallery-id=\"5\"         data-popup-width=\"800\"         data-popup-height=\"500\"         data-is-album=\"gallery\"         data-buttons-position=\"bottom\">      <div id=\"bwg_container2_0\">             <div id=\"ajax_loading_0\" class=\"bwg_loading_div_1\">      <div class=\"bwg_loading_div_2\">        <div class=\"bwg_loading_div_3\">          <div id=\"loading_div_0\" class=\"bwg_spider_ajax_loading\">          <\/div>        <\/div>      <\/div>    <\/div>            <form id=\"gal_front_form_0\"              class=\"bwg-hidden\"              method=\"post\"              action=\"#\"              data-current=\"0\"              data-shortcode-id=\"10\"              data-gallery-type=\"image_browser\"              data-gallery-id=\"5\"              data-tag=\"0\"              data-album-id=\"0\"              data-theme-id=\"1\"              data-ajax-url=\"https:\/\/www.juniorjavadeveloper.pl\/wp-admin\/admin-ajax.php?action=bwg_frontend_data\" data-trp-original-action=\"#\">          <div id=\"bwg_container3_0\" class=\"bwg-background bwg-background-0\">            \t  <div id=\"bwg_image_browser_0\" class=\"image_browser_images_conteiner_0 bwg-image_browser-images-wrapper bwg-container\"         data-params='{&quot;is_pro&quot;:false,&quot;image_right_click&quot;:0,&quot;gallery_id&quot;:&quot;5&quot;}'         data-bwg=\"0\"         data-lightbox-url=\"https:\/\/www.juniorjavadeveloper.pl\/wp-admin\/admin-ajax.php?action=GalleryBox&#038;current_view=0&#038;gallery_id=5&#038;tag=0&#038;theme_id=1&#038;shortcode_id=10&#038;sort_by=order&#038;order_by=asc&#038;current_url=%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F586\">      <div class=\"image_browser_images_0\">                  <div class=\"image_browser_image_buttons_conteiner_0\">            <div class=\"image_browser_image_buttons_0\">                              <div class=\"bwg_image_browser_image_alt_0\">                  <div class=\"bwg_image_alt_0\" id=\"alt42\">                    Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 get\/set z ALT + Insert                  <\/div>                <\/div>                              <div class=\"bwg_image_browser_image_0\">                                  <a style=\"position:relative;\"  class=\"bwg-a bwg_lightbox\" data-image-id=\"42\" data-elementor-open-lightbox=\"no\">                    <img decoding=\"async\" class=\"skip-lazy bwg-item0 bwg_image_browser_img bwg_image_browser_img_0\"                         src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/photo-gallery\/hermetyzacja-w-pierwszej-klasie_01_get-set-00-s.png?bwg=1585656944\"                         data-src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/photo-gallery\/hermetyzacja-w-pierwszej-klasie_01_get-set-00-s.png?bwg=1585656944\"                         alt=\"Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 get\/set z ALT + Insert\"                         title=\"Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 get\/set z ALT + Insert\" \/>                  <\/a>                                <\/div>                          <\/div>          <\/div>                <\/div>    <\/div>    <style>      \/*pagination styles*\/      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 {\t\t\t\ttext-align: center;\t\t\t\tfont-size: 12px;\t\t\t\tfont-family: Ubuntu;\t\t\t\tfont-weight: bold;\t\t\t\tcolor: #666666;\t\t\t\tmargin: 6px 0 4px;\t\t\t\tdisplay: block;      }      @media only screen and (max-width : 320px) {      #bwg_container1_0 #bwg_container2_0 .displaying-num_0 {     \t display: none;      }      }      #bwg_container1_0 #bwg_container2_0 .displaying-num_0 {\t\t\t\tfont-size: 12px;\t\t\t\tfont-family: Ubuntu;\t\t\t\tfont-weight: bold;\t\t\t\tcolor: #666666;\t\t\t\tmargin-right: 10px;\t\t\t\tvertical-align: middle;      }      #bwg_container1_0 #bwg_container2_0 .paging-input_0 {\t\t\t\tfont-size: 12px;\t\t\t\tfont-family: Ubuntu;\t\t\t\tfont-weight: bold;\t\t\t\tcolor: #666666;\t\t\t\tvertical-align: middle;      }      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.disabled,      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.disabled:hover,      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.disabled:focus,\t\t\t#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 input.bwg_current_page {\t\t\t\tcursor: default;\t\t\t\tcolor: rgba(102, 102, 102, 0.5);      }      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a,      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 input.bwg_current_page {\t\t\t\tcursor: pointer;\t\t\t\ttext-align: center;\t\t\t\tfont-size: 12px;\t\t\t\tfont-family: Ubuntu;\t\t\t\tfont-weight: bold;\t\t\t\tcolor: #666666;\t\t\t\ttext-decoration: none;\t\t\t\tpadding: 3px 6px;\t\t\t\tmargin: 0;\t\t\t\tborder-radius: 0;\t\t\t\tborder-style: solid;\t\t\t\tborder-width: 1px;\t\t\t\tborder-color: #E3E3E3;\t\t\t\t\t\t\t\tbackground-color: rgba(255, 255, 255, 1.00);\t\t\t\tbox-shadow: 0;\t\t\t\ttransition: all 0.3s ease 0s;-webkit-transition: all 0.3s ease 0s;      }            #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.next-page:hover,      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.prev-page:hover {        color: #000000;      }      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 .first-page,      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 .last-page {        padding: 0% 7%;      }      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 .next-page {        margin: 0% 4% 0% 0%;      }      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 .prev-page {        margin: 0% 0% 0% 4%;      }      #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a {        font-size: 15px !important;        padding: 0% 7% !important;        border-style: none !important;        border-width: 1px;        border-color: #E3E3E3;        background-color: #FFFFFF;        opacity: 1.00;        transition: all 0.3s ease 0s;-webkit-transition: all 0.3s ease 0s;      }      .bwg_image_browser#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a {         padding: 0% 11% !important;      }\t\t\t#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 {        background-color: rgba(245, 245, 245, 0.90);        margin-top: 0;      }      .bwg_image_browser  .pagination-links_0 {        white-space: nowrap;      }      @media screen and (max-width: 465px) {        .bwg_image_browser#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a {          padding: 0% 5% !important;          font-size: 13px;        }      }      <\/style>      <span class=\"bwg_nav_cont_0\">              <div class=\"tablenav-pages_0\">                      <span class=\"pagination-links_0 pagination-links\" data-pages-count=\"3\">              <span class=\"pagination-links_col1\">              <a class=\"bwg-a first-page disabled\" title=\"Go to the first page\" >\u00ab<\/a>              <a class=\"bwg-a prev-page disabled\" title=\"Go to the previous page\" >\u2039<\/a>              <\/span>\t\t\t\t\t\t\t<span class=\"pagination-links_col2\">\t\t\t\t\t\t\t\t\t<input type=\"number\" class=\"bwg_current_page\" name=\"bwg_current_page\" value=\"1\" data-url-info=\"page_number_0\" onkeypress=\"return bwg_change_page_0(event, this)\" min=\"1\" oninput=\"validity.valid||(value='')\" \/>\t\t\t\t\t\t\t\t\t\tof\t\t\t\t\t\t\t\t\t\t<span class=\"total-pages_0\">\t\t\t\t\t\t\t\t\t\t\t3\t\t\t\t\t\t\t\t\t\t<\/span>\t\t\t\t\t\t\t<\/span>              <span class=\"pagination-links_col3\">                <a class=\"bwg-a next-page-0\" title=\"Go to the next page\" href=\"\/en\/wp-json\/wp\/v2\/posts\/586?page_number_0=2\">\u203a<\/a>                <a class=\"bwg-a last-page-0\" title=\"Go to the last page\" href=\"\/en\/wp-json\/wp\/v2\/posts\/586?page_number_0=3\">\u00bb<\/a>              <\/span>\t\t\t\t\t\t<\/span>\t\t\t\t\t\t        <\/div>                <input type=\"hidden\" id=\"page_number_0\" name=\"page_number_0\" value=\"1\" \/>      <script type=\"text\/javascript\">        if( jQuery('.bwg_nav_cont_0').length > 1 ) {          jQuery('.bwg_nav_cont_0').first().remove()        }        function spider_page_0(cur, x, y, load_more) {          if (typeof load_more == \"undefined\") {            var load_more = false;          }          if (jQuery(cur).hasClass('disabled')) {            return false;          }          var items_county_0 = 3;          switch (y) {            case 1:              if (x >= items_county_0) {                document.getElementById('page_number_0').value = items_county_0;              }              else {                document.getElementById('page_number_0').value = x + 1;              }              break;            case 2:              document.getElementById('page_number_0').value = items_county_0;              break;            case -1:              if (x == 1) {                document.getElementById('page_number_0').value = 1;              }              else {                document.getElementById('page_number_0').value = x - 1;              }              break;            case -2:              document.getElementById('page_number_0').value = 1;              break;\t\t\t\t\t\tcase 0:              document.getElementById('page_number_0').value = x;              break;            default:              document.getElementById('page_number_0').value = 1;          }          bwg_ajax('gal_front_form_0', '0', 'bwg_image_browser_0', '0', '', 'gallery', 0, '', '', load_more, '', 1);        }                    jQuery('.first-page disabled').on('click', function () {              spider_page_0(this, 1, -2, 'numeric');              return false;            });            jQuery('.prev-page disabled').on('click', function () {              spider_page_0(this, 1, -1, 'numeric');              return false;            });            jQuery('.next-page-0').on('click', function () {              spider_page_0(this, 1, 1, 'numeric');              return false;            });            jQuery('.last-page-0').on('click', function () {              spider_page_0(this, 1, 2, 'numeric');              return false;            });        \t\t\t\t\/* Change page on input enter. *\/        function bwg_change_page_0( e, that ) {          if (  e.key == 'Enter' ) {            var to_page = parseInt(jQuery(that).val());            var pages_count = jQuery(that).parents(\".pagination-links\").data(\"pages-count\");            var current_url_param = jQuery(that).attr('data-url-info');            if (to_page > pages_count) {              to_page = 1;            }\t \t\t\t\t\t\t\t\t\t\t\t\tspider_page_0(this, to_page, 0, 'numeric');\t\t\t\t\t\t\treturn false;\t\t\t\t\t\t          }          return true;        }        jQuery('.bwg_load_btn_0').on('click', function () {            spider_page_0(this, 1, 1, true);            return false;        });      <\/script>      <\/span>                <\/div>        <input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form>        <style>          #bwg_container1_0 #bwg_container2_0 #spider_popup_overlay_0 {          background-color: #EEEEEE;          opacity: 0.60;          }          <\/style>        <div id=\"bwg_spider_popup_loading_0\" class=\"bwg_spider_popup_loading\"><\/div>        <div id=\"spider_popup_overlay_0\" class=\"spider_popup_overlay\" onclick=\"spider_destroypopup(1000)\"><\/div>        <input type=\"hidden\" id=\"bwg_random_seed_0\" value=\"282365670\">                <\/div>    <\/div>    <script>      if (document.readyState === 'complete') {        if( typeof bwg_main_ready == 'function' ) {          if ( jQuery(\"#bwg_container1_0\").height() ) {            bwg_main_ready(jQuery(\"#bwg_container1_0\"));          }        }      } else {        document.addEventListener('DOMContentLoaded', function() {          if( typeof bwg_main_ready == 'function' ) {            if ( jQuery(\"#bwg_container1_0\").height() ) {             bwg_main_ready(jQuery(\"#bwg_container1_0\"));            }          }        });      }    <\/script>    \n\n\n\n<p class=\"wp-block-paragraph\">Na za\u0142\u0105czonych zrzutach ekranu wida\u0107 jak \u0142atwo wygenerowa\u0107 <strong>getter\/setter<\/strong>, oczywi\u015bcie trzeba zna\u0107 konwencj\u0119 do tworzenia tych metod. Najwa\u017cniejsze, to wiedzie\u0107 po co w og\u00f3le s\u0105 te metody i do czego je u\u017cywa\u0107. Metody te s\u0105 zawsze publiczne, u\u017cywany dla nich s\u0142owa kluczowego <strong>public<\/strong>. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Konwencja nazewnicza dla metody get\/getter:<br>1. Metoda get\/getter:<br>&#8211; bierzemy nazw\u0119 pola w klasie np. temperature,<br>&#8211; tworzymy publiczn\u0105, zwracaj\u0105c\u0105 ten sam typ, co zmienna,<br>&#8211; metoda musi mie\u0107 przedrostek get,<br>&#8211; do get dodajemy nazw\u0119 pola pisan\u0105 wielk\u0105 liter\u0105, getTemperature,<br>&#8211; w metodzie zwracamy warto\u015b\u0107 pola w klasie.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class Thermostat {\n    private double temperature;\n\n    public double getTemperature() {\n        return temperature;\n    }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Konwencja nazewnicza dla metody set\/setter:<br>2. Metoda set\/setter:<br>&#8211; bierzemy nazw\u0119 pola w klasie np. temperature,<br>&#8211; tworzymy publiczn\u0105 metod\u0119, kt\u00f3ra nic nie zwraca,<br>&#8211; metoda przyjmuje parametr tego samego typu, co zmienna,<br>&#8211; metoda musi mie\u0107 przedrostek set,<br>&#8211; do set dodajemy nazw\u0119 pola pisan\u0105 wielk\u0105 liter\u0105, setTemperature,<br>&#8211; w metodzie ustawiamy warto\u015b\u0107 dla pola w klasie.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class Thermostat {\n    private double temperature;\n\n    public void setTemperature(double temperature) {\n        this.temperature = temperature;\n    }\n}<\/pre>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Poni\u017cej przyk\u0142ad u\u017cycia metod get\/set.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class CarEngineMain {\n    public static void main(String[] args) {\n        Thermostat thermostat = new Thermostat();\n\n        thermostat.setTemperature(80.0);\n        double temperature = thermostat.getTemperature();\n        System.out.println(\"Temperatura dla termostatu: \" + temperature);\n    }\n}<\/pre>\n\n\n<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><div class=\"wp-block-image\"><figure class=\"aligncenter size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"149\" src=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-300x149.png\" alt=\"Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 kod Java, IntelliJ, krok po kroku \u2013 metody get\/set\" class=\"wp-image-609\" srcset=\"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-300x149.png 300w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-1024x510.png 1024w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-768x383.png 768w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-1000x498.png 1000w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-800x399.png 800w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-600x299.png 600w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00-400x199.png 400w, https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_01_konsola-00.png 1152w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption>Ukrywamy, hermetyzujemy nasz kod w klasie \u2013 kod Java, IntelliJ, krok po kroku \u2013 metody get\/set<\/figcaption><\/figure><\/div>\n<\/body><\/html>\n\n\n\n<p class=\"wp-block-paragraph\">Podsumowuj\u0105c, hermetyzacja jest wa\u017cnym elementem programowania obiektowego. W j\u0119zyku Java hermetyzacj\u0119 kodu uzyskujemy za pomoc\u0105 s\u0142owa kluczowego private. Dost\u0119p do p\u00f3l prywatnych realizowany jest za pomoc\u0105 w\u0142asnych metod i\/lub metod get\/set.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ca\u0142o\u015b\u0107 kodu mo\u017cna znale\u017a\u0107 na:<\/p>\n\n\n<div class=\"github-embed github-embed-repository github-logo-mark\">\n<p>        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\" target=\"_blank\">\t\t\t<strong>\t\t\t\tThis project shows how the encapsulation works in Java, and how to use it.\t\t\t<\/strong>\t\t<\/a>\t\t<br \/>        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\" target=\"_blank\">https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation<\/a><br \/>        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\/network\" target=\"_blank\">1<\/a> forks.<br \/>        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\/stargazers\" target=\"_blank\">0<\/a> stars.<br \/>        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\/issues\" target=\"_blank\">0<\/a> open issues.        <\/p>\n<details open>\n<summary>Recent commits:<\/summary>\n<ul class=\"github_commits\">\n<li class=\"github_commit\">                        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\/commit\/b9bbb27cb67c15fa3cb8b26452315619838f80eb\" target=\"_blank\">Encapsulation usage example, using own method and getter\/setter methods. Add Thermostat and CarEngineMain classes.<\/a>, Junior Java Developer Mentor                    <\/li>\n<li class=\"github_commit\">                        <a href=\"https:\/\/github.com\/juniorjavadeveloper-pl\/java-first-class-encapsulation\/commit\/15d43dfebd96907779a3c821e4d8ddd00cf1e65b\" target=\"_blank\">Initial commit<\/a>, GitHub                    <\/li>\n<\/ul>\n<\/details>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Zapraszam do regularnego odwiedzania mojej strony, b\u0119d\u0105 pojawia\u0107 si\u0119 kolejne artyku\u0142y oraz do kontaktu przez email kontakt(at)juniorjavadeveloper.pl.<\/p>","protected":false},"excerpt":{"rendered":"<p>W poprzednich artyku\u0142ach opisa\u0142em teori\u0119 i pokaza\u0142em przyk\u0142ady kodu dotycz\u0105ce tworzenia pierwszej klasy w j\u0119zyku Java, jak i gdzie zapisa\u0107 warto\u015bci w klasie oraz jak wykonywa\u0107 dzia\u0142ania na klasie. Teraz przyszed\u0142 czas na ukrywanie, hermetyzowanie naszego kodu w klasie przed niepowo\u0142anym dost\u0119pem z innych fragment\u00f3w kodu. Dlaczego mieliby\u015bmy ukrywa\u0107 nasz kod przed innymi klasami, developer&#8217;ami? [&hellip;]<\/p>","protected":false},"author":1,"featured_media":615,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_ppp_document_settings_meta":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[4,3,2,7],"tags":[],"class_list":["post-586","post","type-post","status-publish","format-standard","has-post-thumbnail","category-bez-kategorii","category-kod-java","category-poczatkujacy","category-poradnik"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2020\/04\/hermetyzacja-w-pierwszej-klasie_naglowek.jpg","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/comments?post=586"}],"version-history":[{"count":21,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/586\/revisions"}],"predecessor-version":[{"id":616,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/586\/revisions\/616"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media\/615"}],"wp:attachment":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media?parent=586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/categories?post=586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/tags?post=586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}