Wpis z mikrobloga

Drogie Mirki, wytłumaczy mi ktoś o co chodzi z tymi modyfikatorami dostępu private, public, protected w klasach?
Rozumiem, jak działają i w ogóle, ale prawdę mówiąc nie widzę absolutnie żadnego zastosowania dla tego.

Po co to jest? Przecież jak ktoś ma program, już skompilowany w exe, to jeżeli nie dam użytkownikowi dostępu do jakiegoś pola, albo jakiejś metody - i tak jej nie dostanie. Więc jaki jest sens w robieniu jakiś publicznych setterów, getterów, skoro można po prostu zrobić publiczne pola?

Albo jaki sens ma w ogóle to, skoro ograniczenie w stylu private obejmuje jedynie mnie - programistę, a nie program?

#programowanie
  • 6
  • Odpowiedz
@yoloBaklawa: chodzi nie tylko o program dziś, ale o to jak w nim się zmienia różne rzeczy - teoretycznie wszystko możesz upublicznić, ale jak program się rozrośnie i będziesz odwoływał się do każdego pola bezpośrednio, to moze się okazać, że modyfikujesz go zapominając o jakiś zasadach wpływania na siebie wartości... To tylko jeden z przykładów.
  • Odpowiedz
@yoloBaklawa: jak piszesz sam prosty program, to bardzo się nie przydają, ale jak zespół programistów rozwija latami jakiś soft, to już trochę bardziej.

Albo jaki sens ma w ogóle to, skoro ograniczenie w stylu private obejmuje jedynie mnie - programistę, a nie program?


@yoloBaklawa: ale możliwe, że ktoś dostanie gotową bibliotekę nie widząc nawet jej kodu. Możliwe, że jeden programista w projekcie piszę usługę, a drugi z niej korzysta. Wtedy
  • Odpowiedz
@yoloBaklawa: Posłużę się przykładem. Wchodzisz do nowego projektu. Załóżmy, że ktoś utworzył klasę do wysyłania maila i Ty z niej masz jedynie skorzystać żeby przesłać prostą wiadomość z załącznikiem na dany adres mailowy. Co wolisz widzieć:

a) EmailSender.
ValidateEmail()
CheckConnection()
LoadAttachment()
SendEmail()
CheckPermission()

b) EmailSender
SendEmail()

Wiadomo, że b). Nie obchodzą Cię metody, które mają sens tylko w danej klasie. Inny przypadek: masz w kodzie klasy zmienną int zawierającą długość podstawy
  • Odpowiedz