객체지향 프로그래밍1 - 객체

김소희·2023년 2월 23일
1

어젯밤 '내일 배울 객체지향프로그래밍이 무엇일까?'를 생각하다가 잠이 들어서인지 아침부터 의욕과 호기심이 가득한 채로 공부를 시작할 수 있었다.

<객체지향 프로그래밍의 핵심 개념 6가지>
객체, 클래스, 상속, 다형성, 추상화, 캡슐화

객체란 실제로 존재하는 어떤 대상을 뜻하는데 사물이나 동물뿐만 아니라 철학 사상이나 수학 개념같이 보이지 않는 것들도 객체에 속한다. 우리는 객체를 사용할 수 있다.

객체지향 프로그래밍은 객체들이 모여 현실 세계를 이루고 있는 것처럼 컴퓨터로 프로그래밍할 때에도 필요한 데이터들로 객체를 만들고, 객체들 간의 협력과 유기적인 상호작용을 통해 특정 기능을 구현하는 프로그래밍을 말한다.

자동차나 카메라가 실제로 존재하고 동작하는 것처럼 프로그래밍으로 구현하는 객체들도 각각의 속성과 기능을 보유한 완성되고 독립적인 존재이다. 그러므로 그 자체로 유용하고 재활용하기도 쉽다.

객체지향 프로그래밍을 활용하면 코드들의 연관성(결합도)를 낮출 수 있다. 그러면 어떤 오류가 발생했을 때 프로그램 전체를 살펴보지 않고 각 객체들을 살펴보면서 수정을 할 수 있다. 프로그램 개발 및 유지 보수에 드는 비용과 시간을 획기적으로 줄일 수 있고, 객체를 통해 데이터를 관리하여 프로그램의 크기도 줄어들고 데이터를 손실 없이 관리하기에 용이하다.

객체는 클래스에 정의되고 설계된 내용 그대로 생성된다.
클래스란 TV 설계도대로 TV를 만들고, 붕어빵 틀 모양으로 붕어빵을 만드는 것처럼 객체를 정의하는 '설계도'나 '틀'이라고 생각하면 된다.

붕어빵을 만들 때, 붕어빵 기계가 좋으면 붕어빵을 만들 때마다 어떻게 만들어야 할지 매번 고민하지 않아도 될 것이다. 잘 만들어진 붕어빵 기계는 백 번이고, 수 천 번이고 계속해서 같은 모양의 붕어빵을 잘 만들어낼 수 있다.
이와 마찬가지로 클래스를 한번 잘 정의해 놓으면, 매번 객체를 생성할 때마다 어떻게 객체를 만들어야 할지 더 이상 고민하지 않고, 그저 클래스로부터 객체를 생성해서 사용하기만 하면 된다.
하지만 중요한 건 붕어빵이지 붕어빵 기계가 아니므로 클래스를 잘 만들려면 객체의 속성과 기능을 잘 파악하고 객체 간의 상호작용을 고려해야 한다.

클래스를 통해 생성된 객체는 해당 클래스의 인스턴스(instance)라 부르고 클래스로부터 객체를 만드는 과정을 인스턴스화(instantiate)라고 한다.

▽객체를 생성하는방법 (인스턴스화 하는법)

타입(클래스) 참조변수 = new 생성자();
ex) Student my = new Student();

Student라는 클래스가 있고,
my라는 변수가 인스턴스를 가리키고 있다.
컴파일 중 new를 만나면 my의 인스턴스가 생성될 것이다.

profile
백엔드 개발자 소희의 모험

0개의 댓글