특성(속성)과행동(행위)를 가지는, 식별이 가능한 모든 것을 의미한다.
💡 속성: 필드 (Field) | 행위: 메서드 (함수)
자동차를 기반으로 속성과 행위에 대해 알아보자면 아래와 같다.
따라서 이러한 속성과 행위를 지니는 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다.

객체 1은객체 2가 가지고 있는 메서드를 호출한다.객체 2는 이에 반응해 전달 받은파라미터(매개변수)를 가공해리턴 타입의 값을 반환하게 된다.
❗객체들은
메서드를 통해데이터(매개변수)를 주고 받을 수 있다.
이처럼 속하지 않고 서로를 사용하는 관계를 사용 관계라고 한다.

Car라는 이름을 가진 객체에는Door,Tire,Handle이라는 이름을 가지는 객체가 존재한다. 즉,객체 2, 3, 4는 Car라는 객체에 속한다는 의미가 된다.
이처럼 한 객체 내에 속하는하는 관계를 포함 관계라고 한다.

객체1 (공장)에서 만든 특정 부품을객체2 (자동차)와객체3(기차)가 동일하게 사용한다.객체2와객체3는 객체1에게 특정 부품을 상속받아서 사용하는 관계이다.
이처럼 한 객체 내 동일한 기능을 다른 객체가 상속받아 사용하는 관계를 상속 관계라고 한다.
필드와 메서드를 하나로 묶어 객체로 만든 후 외부에서 알 수 없도록 감추는 것을 의미한다.
외부 객체에서는 캡슐화된 내부 구조를 알 수 없기 때문에 보안이 강화 되고 외적 요인에 의해 변화되지 않는다. 또한 불필요한 정보를 외부로 노출시키지 않아 혼란을 줄여주기도 한다.
💡 캡술화된 필드와 메서드를 노출시킬지 말지 결정하기 위해서는
접근제어자가 필요하다! [접근 제어자란?]
객체 지향 프로그램에는 부모 객체와 자식 객체가 존재한다. ([상속] 링크 참고 예정)
부모 객체는 자신의 필드와 메서드를 자식 객체에게 물려주어 사용할 수 있도록 해준다.
❗ 부모의 필드와 메서드를쓸지 말지는 자식 객체가 결정한다.
- 객체들을 상속 관계로 묶을 시 객체간의 구조를 파악하기 쉬워진다.
- 부모객체가 수정되었을 때 자식 객체에게도 영향을 주기 때문에 일관성 유지에 좋다.
- 코드 중복이 줄어들고 재사용성이 증가한다.
상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록하여 상위 클래스가 동일한 메서드로 하위클래스들이 서로 다른 동작을 할 수 있도록 해주는 것을 말한다.
다형성은 여러객체를 하나의 타입으로 관리할 수 있기 때문에 유지보수가 용이하다.- 객체 재사용성이 증가한다.
❗상위와 하위 클래스는 반드시
상속 관계여야하며, 오버라이딩이 반드시 필요하다. [오버라이딩] 링크 참고 예정
객체에서 공통된 부분들을 모아 상위 개념으로 선언하는 것을 의미한다. [abstrct] 링크 참고 예정