Przejdź do głównej zawartości

Hermetyzacja raz jeszcze - java + static

Korzyści z hermetyzacji :

  • możliwość zmianny tylko w obrębie klasy np z getName ---> return firstName + " " + lastName zamiast pierwotnego return name
  • ograniczamy dostępność tylko do wyznaczonych parti kodu - ustawiamy dla pola private ale nie ustawiamy gettera do tego pola
  • łatwosć w testowaniu 
  • łatwiejsze ponowne używanie programu


Modifikator static:
  • powoduje ze nie potrzeba tworzyć obiektu klasy aby mieć dostęp do jego metod. Java przeszukuje wszystkie modyfikatory dostępu static aby dla wszystkich metod stworzyć po jednej instancji metody
  • Zmienne będące w statycznej metodzie muszą również być statyczne aby umozliwić uruchomienie metody / programu
  • W statycznej metodzie nie stosujemy this. gdyż nie odwołujemy się do instancji która może zostać nie zainicjalizowana
  • Statyczna zmienna nie może być zainicjalizowana w metodzie statycznej gdyż dochodzi do problemu w którym moemncie zainicjalizować zmienną A - w moemencie startu programu B - w momencie wywołania metody

Pola statyczne - będzie współdzielone przez wszystkie instancje danego obiektu. pole takie będzie istniało nawet jeśli nie będzie ani jednego obiektu danej klasy.
Stałe statyczne - np w klasie Math znajdziemy stałą statyczną  public static final double PI=3,14159 dostęp do tej stałej mamy tylko z poziomu klasy Math.PI - gdyby nie było słowa static musielibyśmy się odwoływać do stałej PI poprzez stworzony każdorazowo obiekt. Stałą statyczną jest public static finall PrintStream out
Metody statyczne - metody statyczne nie działają na obiektach, metody statyczne działają na klasach.


Komentarze

Popularne posty z tego bloga

Skrócony zapis if - instrukcja warunkowa java

Instrukcja warunkowa - warunek i rezultat. if (warunek) { jesli spełniony wykonań operacje i zwróć wynik; } warunek nie spełniony Możliwości skrócenia kodu instrukcji warunkowej if (i < 0) ? i-- : i++; Jeżeli i mniejsze od zera to i-- jezeli false to i++ if (i < 0) {     i--; } else {     i++; } Skrócony zapis instrukcji warunkowej else if (i < 0) ? i--;  inna_zmienna=4; : i++; if (i < 0) {     i--; } else {     i++;     inna_zmienna = 4; } Skrócony zapis if

String-1 > endsLy

Given a string, return true if it ends in "ly". endsLy("oddly") → true endsLy("y") → false endsLy("oddy") → false public boolean endsLy ( String str ) { if ( str . length ()< 2 ){ return false ; } if (( str . substring ( str . length ()- 2 , str . length ())). equals ( "ly" )){ return true ; } return false ; }

String-1 > withouEnd2

Given a string, return a version without both the first and last char of the string. The string may be any length, including 0. withouEnd2("Hello") → "ell" withouEnd2("abc") → "b" withouEnd2("ab") → "" public String withouEnd2 ( String str ) { if ( str . length ()== 1 ){ return str . substring ( 1 ); } else if ( str . length ()== 0 ){ return str ; } return ( str . substring ( 1 , str . length ()- 1 )); }