Java - 객체 지향 프로그래밍 (객체와 클래스란?)

|

개인적인 연습 내용을 정리한 글입니다.
더 좋은 방법이 있거나, 잘못된 부분이 있으면 편하게 의견 주세요. :)


객체지향 프로그래밍

프로그래밍을 하는 하나의 방법

객체란?

  • 세상에 존재하는 모든것을 뜻하며, 프로그래밍에서 속성과 기능을 가지는 프로그래밍 단위
  • 눈에 보이는 모든것을 의미하며 큰 프로그램 안에 작은 프로그램 단위
  • 모든 객체는 속성과 기능을 가짐
  • 특정한 목적을 가지기 위해 만들어져 특정 목적을 수행하는 ‘기능’과 기능에 필요한 ‘속성’을 가짐

클래스란?

  • 객체를 생성하기 위한 틀로 모든 객체는 클래스로부터 생성 (ex.붕어빵 틀)
  • 다양한 객체를 만들기 위한 하나의 틀
  • 틀을 하나 만들어놓고 사용자의 입맛에 맞게 커스터마이징하여 객체를 생성

즉, 객체 하나를 만들더라도 무조건 클래스(틀) 하나는 만들어놓아야 한다. (객체의 부모역할 = 클래스)

프로그램에서 우리가 하는 일은 클래스를 만드는 일이며, 필요에 따라 클래스에서 객체를 뽑아쓴다.

이때 뽑아낸 객체가 메모리에 탑재되는 것이다.

  • GC(Garbage Collector):클래스로부터 필요에 따라 만든 객체가 더이상 필요 없어졌을 때(사용되지 않을 때), 회수하는 역할. 즉 메모리에서 날려버림으로써 메모리를 여유롭게 만들어준다. (임자없는 객체를 회수하는 역할)

클래스의 구성요소

클래스느 속성(멤버변수)와 기능(메서드)로 구성


자바에서 객체지향 프로그래밍을 채택한 이유?

  • 객체를 만들면 모듈화가 가능
  • 모든 프로그래밍을 본인이 다 만들 필요가 없으며, 누군가가 만들어놓은 좋은 기능을 이용해 본인만의 새로운 프로그래밍이 가능
    • 굉장히 복잡하고 정확한 연산이 들어가는 기능을 처음부터 만들기 보다 지금까지 해왔던 기능이나 속성 중에 좋은게 있다면 그걸 가져와 본인이 만든 기능과 더해서 새로운 프로그램을 만들수 있음
  • 즉, 객체 하나하나 만들 필요없이 가져와 붙임으로써 언어의 확장성이 굉장히 좋아짐