1. 객체 지향 언어의 개념과 특징
프로그래밍은 절차적에서 객체 지향적으로 그 흐름이 바뀌었는데 이와 같은 흐름을 반영하는 언어를 객체 지향 언어라고 한다. 어렵게 생각할 필요가 없고 다음과 같다고 생각하면 된다.
객체 지향 언어 = 프로그래밍 언어 + 객체 지향 개념 (규칙)
객체 지향 개념은 규칙이기 때문에 외워야 한다. 다음 4가지 핵심 규칙을 외우도록 하자.
(1) 캡슐화
(2) 상속
(3) 추상화
(4) 다형성 ⭐⭐⭐⭐⭐
객체 지향 언어는 다음과 같은 장점이 있다.
(1) 코드의 높은 재사용성 = 중복 제거
(2) 유지 보수의 용이
2. 클래스와 객체
1) 클래스와 객체의 정의, 용도
그렇다면 객체가 무엇인지 알아보기 앞서 클래스와 객체의 정의 그리고 용도를 먼저 알아보자.
클래스 예) 설계도 | 객체 예) 제품 | |
정의 | (1) 설계도 (2) (관련 있는) 변수 + 메서드 모음 (3) 사용자 정의 타입 |
사물 또는 개념 |
용도 | 객체 생성 | 속성 또는 기능을 사용 |
객체의 속성, 기능을 클래스에서는 각각 멤버 변수, (멤버) 메서드라고 한다. 그렇기 때문에 클래스가 관련있는 변수 + 메서드의 모음이라는 것이다. 정의 (2)에 따르면 배열도 변수만 있는 객체이다. 이 표는 외우도록 하자.
[참고] 객체 vs. 인스턴스
같은 의미로 생각하고 사용해도 무방하다. 좀 더 엄밀히 말하면 객체가 인스턴스보다 포괄적인 의미를 갖고 있다. 객체는 모든 인스턴스를 대표하지만 인스턴스는 특정 클래스로부터 생성된 것이라는 의미가 강조된다.

[예 1]
객체 | 인스턴스 |
책상은 객체다. | 책상은 인스턴스이다. |
이 책상은 책상 클래스의 객체이다. | 이 책상은 책상 클래스의 인스턴스이다. |
강조된 부분이 좀 더 자연스러운 표현이다.
2) 객체의 생성과 사용
결국 2.-1)에서 강조하고 싶었던 이야기는 클래스는 객체를 만들고, 만들어진 객체를 사용하기 위해서 쓰일 도구일 뿐이라는 것이다. 배열도 변수를 선언 후 생성, 대입해주어야 하는 것처럼 객체를 사용 시 참조 변수를 선언 후 생성한 객체를 대입해주어야 한다. 정리하자면 다음과 같다.
(1) 클래스(설계도) 작성
(2) 참조형 변수(리모콘) 선언
(3) 객체(제품) 생성
(4) (3)을 (2)에 대입 (제품을 리모콘과 연결)
(5) 객체(제품) 사용
- 변수 사용: 참조형 변수.멤버 변수
- 메서드 사용: 참조형 변수.메서드 이름
배열도 객체이기 때문에 (5)와 같이 사용했었다. 괄호 안의 단어로 바꿔서 생각하면 이해가 쉬울 것이다. 또한 다음의 규칙을 외우자.
(1) 객체로 생성한 인스턴스(제품)는 참조형 변수(리모콘)를 통해서만 다룰 수 있다.
(2) 참조형 변수의 타입 = 인스턴스의 타입
(3) 참조형 변수와 인스턴스의 관계
- 일대일 (가능)
- 일대다 (불가)
- 다대일 (가능)
3) 객체 배열
객체 배열은 참조 변수의 배열이다. 배열을 선언, 생성만 하고 객체를 저장하지 않는 실수를 많이 하니 이 점을 유의하도록 하자. 배열과 마찬가지로 객체 배열도 같은 타입의 객체만 저장이 가능하다.
'자바 (Java) > 요약' 카테고리의 다른 글
Chpt 6. 객체 지향 프로그래밍 - 주제 3. 매개변수와 반환타입 (0) | 2023.10.24 |
---|---|
Chpt 6. 객체 지향 프로그래밍 - 주제 2. 클래스는 변수와 메서드의 묶음이다. (1) | 2023.10.23 |
Chpt. 5 배열 - 주제 2. 2차원 배열은 배열의 배열이다. (1) | 2023.10.21 |
Chpt. 5 배열 - 주제 1. 배열은 변수의 모음 (1) | 2023.10.21 |
Chpt. 4 조건문과 반복문 - 주제 2. 조건만 맞으면 반복 실행되는 반복문 (1) | 2023.10.21 |