혼자 공부하는 자바 (저자 : 신용권)의 내용을 개인적으로 정리하는 글임을 알립니다.
객체 지향 프로그래밍
현실 세계에서 어떤 제품을 만들 때 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 제품을 완성하듯이 소프트웨어를 개발할 때에도 부품에 해당하는 객체를 먼저 만든다. 그리고 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍(OOP : Obeject Orented Programming)이라고 한다.
객체는 속성과 동작으로 구성되어 있다.
예를 들어 사람 객체의 속성으로는 이름, 나이 등이 있고, 동작으로는 걷기, 말하기, 먹기 등이 있다.
자바는 이 속성과 동작을 각각 필드와 메소드라고 부른다.
현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다.
객체의 상호작용
현실 세계에서 사람(객체)이 계산기(객체)를 이용하는 것과 같이, 소프트웨어에서도 객체는 각각 독립적으로 전재하고, 다른 객체와 서로 상호작용을 하면서 동작한다.
객체들 사이의 상호작용 수단은 메소드이다. 이때 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다.
객체 간의 관계
객체는 개별적으로 사용될 수 있지만, 대부분 다른 객체와 관계를 맺고 있다.
이 관계의 종류에는 집합관계, 사용관계, 상속관계가 있다.
- 집합 관계에 있는 객체는 하나는 부품이고 하나는 완성품에 해당
- 사용 관계는 객체 간의 상호작용을 말함
- 상속 관계는 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 관계를 말함.
객체와 클래스
건물을 마구잡이로 짓지는 않는다. 설계도에 의해서 건물이 완성된다.
자바에서 설계도가 클래스이다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있고, 클래스로 부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다.
보통 붕어빵 틀과 붕어빵사이의 관계를 클래스와 객체 사이 관계로 많이 예를 든다.
'Java Category > Java' 카테고리의 다른 글
[JAVA] 필드(Field) (0) | 2022.12.31 |
---|---|
[JAVA] 클래스(Class) (0) | 2022.12.30 |
[JAVA] 열거 타입(enum) (0) | 2022.12.28 |
[JAVA] 배열(Array) (0) | 2022.12.27 |
[JAVA] 참조 타입과 참조 변수 (0) | 2022.12.26 |