c언어는 객체 지향을 지원하지는 않으나 구현이 불가능하지는 않다.
하지만 타 언어와 비교하면 불편하고 유지보수가 더 어려워진다. 사용을 하지 않는 것이 더 낫다.
소스코드가 너무 길어져서 시간이 지나면서 개발자 자신도 파악하기 힘들어진다.
생각하는 방법을 습관화하자
암기를 하지말고 이해와 전체적인 그림을 그린다
오브젝트 (object) : 현실 세계의 모든 객체
클래스 (class) : 오브젝트를 가상세계 용으로 구체화 한 것 (붕어빵 틀)
인스턴스 (instance) : 클래스를 활용 해 메모리 상에 만들어 낸 것 (붕어빵)
인스턴스와 클래스는 완전히 다른 것이다.
클래스에는 속성을 필드(field), 동작을 메소드(method)
final 이 붙으면 필드는 상수 필드로 값이 변하지않는다.
this 는 자기 자신의 인스턴스를 표시한다.
안써도 상관은 없지만 사용하지않으면 오류가 생길 수 있다.
예시
클래스를 정의하면, 그 클래스 타입의 변수를 선언 할 수 있다.
어떤 클래스 타입 변수는 그 클래스의 인스턴스를 담을 수 있다.
예시)
new 연산자를 사용하여 클래스로부터 인스턴스를 생성
어떤 클래스 타입 변수에 인스턴스가 담겨 있을 때 “변수명.필드명" 이나 “변수명.메소드명()” 으로
그 인스턴스의 필드나 메소드를 이용할 수 있다
예시)