Pracuję głównie w Javie, a ostatnio próbuję się nauczyć programowania aplikacji Objective-C na Maca i iOS. Teraz ten język jest zupełnie inny od tego, do czego jestem przyzwyczajony, wskaźników, wiadomości itp., Ale wydaje mi się, że wszystko jest w porządku. Nie jest to problem z kodowaniem na słowo, ale wolałbym raczej znać to, z czym mam do czynienia, niż tylko wiedzieć "tak musi być, ponieważ tak właśnie jest".Dlaczego Objective-C używa plików nagłówkowych zamiast klas jednego pliku, takich jak Java?
Dlaczego pliki w języku Objective-C wymagają plików nagłówkowych? Jaki jest ich rzeczywisty cel oddzielenia od pliku .m? Dlaczego funkcje muszą być zadeklarowane w nagłówku, a nie tylko zaimplementowane? Czy jest to jedna z tych rzeczy, które po prostu nie wymarły ze starego języka, czy też ma prawdziwą zaletę w przeciwieństwie do klas pojedynczego pliku Javy?
FWIW, niektóre * dużo * starsze skompilowane języki, takie jak Pascal i Delphi, również nie potrzebują nagłówków. Używają jednostek, w których interfejs i część implementacyjna są w jednym pliku, a deklaracje itp. Są dostępne w przyjaznym dla kompilatora formacie binarnym. –