객체 지향 프로그래밍(Object Oriented Programming)
정보와 동작들을 객체 단위로 묶고, 이런 객체들을 연결시키면서 정리하는 프로그래밍 방식
객체는 2가지로 구성되어있다. (객체는 속성들과 동작들의 묶음)
1) 속성 = 변수
2) 동작 = 메소드(함수)
개요
박모씨가 은행 계좌에 입금을 하고 출금을 하고, 또 고모씨의 계좌에 10.000원을 이체해주려고 한다. 이런 상황을 어떻게 프로그램으로 표현할 수 있을까?
일단 '사람'이라는 것을 표현할 방법이 필요하고, '계좌'라는 것을 표현할 방법이 필요하다. 이런 상황을 쉽게 정리할 수 있는 프로그래밍 방법이 바로 객체 지향 프로그래밍이다.
이 경우에는 '사람'을 표현하는 객체와 '은행 계좌'를 표현하는 객체를 만들 수 있다.
사람 객체에는 이름, 나이, 현금, 소유 계좌 등의 속성들이 있고, 은행 계좌에는 잔액과 소유인이 속성으로 필요하고, 입금, 출금, 이체 동작들이 필요하다.
클래스(Class)
'클래스(Class)'는 앞서 말한 객체들에 대한(객체를 만들기 위한) 설계도, 또는 설명서이다. (객체를 만들기 위한 빵 틀과 같은 개념)
1) 사람(Person)에 대한 설명서를 먼저 작성해 보자!
public class Person {
String name;
int age;
int cashAmount;
// 은행 계좌?
}
Person이라는 클래스를 만들었다. 이 클래스에는 '이름'을 표현하는 name이라는 문자열 변수, '나이'를 표현하는 age라는 정수 변수, 그리고 '보유 현금'을 표현하는 cashAmount라는 정수 변수가 있다. '은행 계좌'를 표현하는 변수는 일단 비워두자.
2) 이번에는 '은행 계좌(BankAccount)' 객체에 대한 설명서를 작성해 보자!
public class BankAccount {
int balance;
// 소유인?
}
BankAccount라는 클래스를 만들고, 이 클래스에는 '잔액'을 표현하는 balance라는 정수 변수가 있다. '소유인'을 표현하는 변수는 일단 비워두자.
3) 연결하기 : 사람(Person)과 은행 계좌(BankAccount)의 관계를 표현해보자!
public class Person {
String name;
int age;
int cashAmount;
BankAccount account;
}
BankAccount 클래스를 마치 자료형처럼 사용하였다. account 변수는 BankAccount 타입을 갖게 된다.
public class BankAccount {
int balance;
Person owner;
}
owner 변수는 Person 타입을 갖게 된다.
결론 : 이런 식으로 프로그램을 객체 단위로 정리하고, 객체들끼리 엮으면서 프로그래밍 하는 방식이 바로 '객체 지향 프로그래밍' 이다.
'TIL > Java' 카테고리의 다른 글
[Java] 인스턴스 (0) | 2021.12.30 |
---|---|
[Java] 메소드(Method) (0) | 2021.12.29 |
[Java] 다중 배열(Multi Array) (0) | 2021.12.28 |
[Java] 배열(Array)_염기서열문제 (0) | 2021.12.28 |
[Java] 배열(Array) (0) | 2021.12.28 |