티스토리 뷰
객체지향 프로그래밍(Object Oriented Progamming)은 객체가 무엇인지 아는 것에서 시작한다.
객체를 알기 위해선 객체를 생성하는 도구인 클래스에 대해서도 알아야 하는데, 각각의 개념은 다음과 같다.
- 객체(Object) - 우리가 인지할 수 있는 모든 것. 사용할 수 있는 실체
- 클래스(Class) - 객체를 정의한 설계도 또는 틀
- 클래스는 객체 자체가 아니라 객체를 생성하는 데 사용되는 하나의 틀에 불과하다.
- 클래스를 통해 생성된 객체를 인스턴스(Instance)라 부른다.
조금 추상적인 이야기라 이해하는데 어려움이 있었지만, 대략 위와 같은 단어에 익숙해지면 되는 듯하다.
객체와 인스턴스는 거의 같은 개념이지만 조금 다르다는 것도 알 수 있었다.
추가로 최초의 클래스를 잘 만들어 두면 두고두고 쓰임새가 있고 유지보수도 편하다고 한다.
클래스
클래스는 class키워드를 이용하여 아래와 같이 정의한다.
public class Car{
int doors = 4; // (1)필드
void stop {...} // (2)메서드
Car {...} // (3)생성자
class Car2 {...} // (4)내부 클래스
}
위의 구성요소 중 생성자를 제외한 세 가지 요소를 클래스(혹은 생성된 인스턴스=객체)의 멤버(Member)라 부른다.
각각 구성요소의 특징은 다음과 같다.
(1) 필드 - 클래스(객체)의 속성을 나타내는 변수. 차의 색깔, 문의 개수, 모델명 등이 있다.
(2) 메서드 - 클래스(객체)의 기능을 나타내는 함수. 차로 예를 들면 가속하기, 멈추기 등이 있다.
(3) 생성자 - 클래스의 객체를 생성하는 역할.
(4) 내부 클래스 - 클래스(객체) 내부의 클래스
객체
위에 적은 대로, 객체는 필드, 메서드, 내부 클래스의 멤버를 가지고 있다.
필드와 메서드는 각각 객체의 속성과 기능을 나타내며, 수학적으로 봤을 때 변수와 함수에 해당한다.
위에 작성한 자동차의 예를 계속 이어가다 보면, 변수와 메서드에 대한 이해를 더할 수 있는데,
이를 도식으로 표현하면 아래와 같다.
또한, 위에 정의된 클래스와 new 키워드를 이용해 인스턴스를 생성하는 과정은 다음과 같다.
class CarTest {
public static void main(String[] args) {
Car bmw = new Car(); // Car 클래스로 만들어진 bmw 인스턴스
Car tesla = new Car(); // Car 클래스로 만들어진 tesla 인스턴스
Car audi = new Car(); // Car 클래스로 만들어진 audi 인스턴스
}
필드와 메서드에 대해서는 또 많은 내용이 있어서 글을 분리한다.
'Java+Spring > Java' 카테고리의 다른 글
[Java]메서드(Method), 메서드 오버로딩(Method Overloading) (0) | 2022.07.13 |
---|---|
[Java]필드(field), static 키워드 (0) | 2022.07.13 |
[Java]객체의 생성과 활용 (0) | 2022.07.08 |
[Java]간단한 계산기 만들기 (0) | 2022.07.08 |
[Java]Arrays.copyOf와 Arrays.copyOfRange (0) | 2022.07.08 |
[Java]System.arraycopy 배열 복사하기 (0) | 2022.07.08 |
- Total
- Today
- Yesterday
- 칼이사
- Backjoon
- 맛집
- Python
- 스프링
- 자바
- 남미
- 지지
- 동적계획법
- 면접 준비
- Algorithm
- 중남미
- 세계일주
- 유럽여행
- a6000
- 백준
- RX100M5
- 유럽
- 파이썬
- 기술면접
- 리스트
- 세계여행
- BOJ
- 세모
- 스트림
- 야경
- spring
- 알고리즘
- 여행
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |