Software Component = Data + Function
[Class and Object]
- Class : 프로그래머가 define한 데이터 타입을 의미
- Object : realization of a class / class의 instance
1) Member data : class 선언시 어떤 데이터 값을 이용하여 동작할 것인지
2) Member function : 함수 선언처럼 작성해주면 됨
3) Private : Class 내에서만 작동하는 부분
=> 이 부분에 대한 내용을 encapsulation으로 이야기함
4) Public : Class 밖에서도 작동 할 수 있는 부분
=> 프로그램 내의 다른 함수나 다른 부분들에서도 접근 가능한 부분
5) Constructor (생성자) : 기본적으로 어떤 값을 가질지 정함 / Public 밑에 선언되며 약간 다른 문법이 사용됨 (void도 아니고 return 값도 없음)
=> Constructor는 Class와 같은 이름을 갖음
=> Initialization list를 이용하여 초기화 하기도 함 (일반적인 초기화 방법과 약간 다른 양상을 띔
=> 여러개의 생성자가 존재하면 조건에 맞는 생성자를 찾아서 동작함
=> 생성자들은 {}와 () 사용 가능
[Encapsulation]
Encapsulation을 사용하는 이유는?
1) 더 resilient하고 flexible한 software의 개발
2) 프로그래머가 더 관리하고 변경하기 편함
[auto]
- 변수 type을 자동으로 배정해줌
- 따라서 initiallize하지 않고는 사용할 수 없음