class를 사용할때 저는 거의 public에 클래스내에서 사용되는 모든데이터를
선언하고요(글로벌 변수는 따로..)
메소드도 다 methods에 선언하는데
왜 굳이 private에 나누고 class-data class-methods 등등을 쓰나요?
private에 쓰는 이유는 책에서 이미 읽어보았는데
어짜피 개발자 한명이 한프로그램을 쭉 개발하는거라면
굳이 구분해야할 필요가 있을까요;;
답변 부탁드립니당
class를 사용할때 저는 거의 public에 클래스내에서 사용되는 모든데이터를
선언하고요(글로벌 변수는 따로..)
메소드도 다 methods에 선언하는데
왜 굳이 private에 나누고 class-data class-methods 등등을 쓰나요?
private에 쓰는 이유는 책에서 이미 읽어보았는데
어짜피 개발자 한명이 한프로그램을 쭉 개발하는거라면
굳이 구분해야할 필요가 있을까요;;
답변 부탁드립니당
사실 한 프로그램을 개발자 한명이 영원히 책임지고 소스코드도 완벽히 장악하고 있다고 하면 어떻게 짜든 상관없을 겁니다.
왜 객체지향 프로그래밍을 하는지 구글링을 통해 자료를 찾아보시기 바랍니다. 해답이 있을 겁니다.
객체지향의 클래스라는 개념이 세상의 이치를 프로그래밍에 적용하여 직관적으로 읽기 쉽고 쓰기 쉽게 한다는..
다분히 철학적인 내용을 많이 담고 있습니다. (철학은 구글이 가르쳐 줄겁니다. ^^)
개발자 입장에서..
객체지향 프로그래밍의 실용적인 부분은 말씀하신 부분들을 적절히 사용함으로써 실수를 줄이고
향후 유지보수가 쉽다는 장점이 있습니다. (한사람이 다 한다고 해도.. 시간과 소스 복잡도는 비례.. 기억은 반비례하므로..)
질문하신 분도 public 변수와 글로벌 변수는 구분하는 모양입니다.
말씀하신 취지대로라면 그냥 죄다 글로벌 변수로 해도 문제는 없잖아요?
(이부분은 논란의 여지가 있지만 말이 그렇다는 겁니다. 넘어가고요.. ^^;)
public에 모두 넣었다는 것은 마치 케이스 분리한 전자제품과 같습니다.
복잡한 배선과 기판이 그대로 드러나 있기 때문에 뭐가 뭔지 알기만 한다면
내맘대로 조리할 수 있습니다만.. 반대로..
실수로 망가뜨릴 위험도 높습니다.
그래서 외부(public)에는 꼭 필요한 기능만 버튼 등 기능으로 뽑아놓습니다.
class-data, class-methods 는 좀 다른 의미인데요.
뭐랄까.. 자판기같은건데요.
create object로 객체의 인스턴스를 생성한다는 의미는 자동차 공장에서 이사람 저사람한테 자동차 한대씩
만들어주는 것과 같은 건데요. (인스턴스..)
누구의 소유가 될 필요가 없는 물건/기능도 있잖아요?
자판기 같은..
음료수를 마시려고 자판기를 한대씩 가질 필요는 없으니까.. 돈도 많이들고.. (메모리, cpu..)
그저 돈을 넣으면(input) 뭔가 음료수를 주면(output) 되는 나한테 의존적이지 않은 것들은
static 으로 선언하고 사용하면 되는 것입니다.
create object 할 필요없으니 코딩도 한줄 줄고 좋잖아요.
간단 명료하게 글쓰는 습관을 좀 들여야 하는데.. 매번 너무 기네요. 죄송.