![[자바 #14] 객체지향 프로그래밍, OOP](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog-custom%3Ftitle%3D%255B%25EC%259E%2590%25EB%25B0%2594%2B%252314%255D%2B%25EA%25B0%259D%25EC%25B2%25B4%25EC%25A7%2580%25ED%2596%25A5%2B%25ED%2594%2584%25EB%25A1%259C%25EA%25B7%25B8%25EB%259E%2598%25EB%25B0%258D%252C%2BOOP%26tag%3DTemplate%2B1%26description%3D%26template%3D3%26backgroundImage%3Dhttps%253A%252F%252Fsource.inblog.dev%252Fog_image%252Fdefault.png%26bgStartColor%3D%25233f0707%26bgEndColor%3D%25233f0707%26textColor%3D%2523000000%26tagColor%3D%2523000000%26descriptionColor%3D%2523000000%26logoUrl%3D%26blogTitle%3DGyeongwon%2527s%2Bblog&w=2048&q=75)
1. 객체
객체는 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것이다.
객체는 속성과 동작으로 구성된다. 사람은 이름, 나이 등의 속성과 웃다, 걷다 등의 동작이 있다. 자바는 이러한 속성과 동작을 각각 필드와 메소드라고 부른다.
모델링은 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 말한다.
2. 객체의 상호작용
객체들 사이의 상호작용 수단은 메소드이다. 객체가 다른 객체의 기능을 이용할 때 이 메소드를 호출한다.
- 메소드(매개값1, 매개값2, …);
메소드 호출을 통해 객체들은 데이터를 서로 주고받는다. 메소드 이름과 함께 전달하고자 하는 데이터를 괄호()안에 기술하는데, 이 데이터를 매개값이라고 한다. 매개값은 메소드가 실행할 때 필요한 값이다. 리턴값은 메소드의 실행의 결과이며, 호출한 곳으로 돌려주는 값이다.
int result = add(10, 20);
리턴한 값을 int 변수에 저장
3. 객체 간의 관계
객체는 대부분 다른 객체와 관계를 맺고 있다. 관계의 종류에는 집합 관계, 사용 관계, 상속 관계가 있다.
집합 관계 : 완성품과 부품의 관계, 자동차는 엔진, 타이어, 핸들 등으로 구성되므로 자동차와 부품들은 집합 관계이다.
상속 관계 : 부모와 자식 관계, 자동차가 기계의 특징(필드, 메소드)을 물려받는다면 기계(부모)와 자동차(자식)는 상속 관계에 있다고 볼 수 있다.
사용 관계 : 다른 객체의 필드를 읽고 변경하거나 메소드를 호출하는 관계를 말한다.
4. 객체지향 프로그래밍의 특징
- 캡슐화 : 객체의 데이터(필드), 동작(메소드)을 하나로 묶고 실제 구현 내용을 외부에 감추는 것을 말한다. 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.
- 상속 : 부모 역할의 상위 객체와 자식 역할의 하위 객체가 있다. 부모 객체는 자기가 가지고 있는 필드와 메소드를 자식 객체에게 물려주어 자식 객체가 사용할 수 있도록 한다.
- 코드의 재사용성을 높여준다.
- 유지 보수 시간을 최소화시켜 준다.
- 다형성 : 사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질을 말한다. 프로그램을 구성하는 객체(부품)를 바꾸면 프로그램의 실행 성능이 다르게 나올 수 있다.
Share article