Java100 Part.3 - 클래스

Jeong Woosi·2022년 2월 2일
0

Java100 Part.3

목록 보기
12/24
  1. 클래스란 무엇인가?
  • 클래스란 객체(또는 인스턴스)를 생성하는 하나의 공장(=틀, 프레임, 템플릿, 판형 등등...)이다.
  • 시골 허허벌판에 농기계를 만들어내는 공장(Class)이 들어섰고, 농부들이 주문을 넣으면 농기계가 만들어져 나온다. ➡️ 그게 바로 "객체"~!!
  • 농기계 공장을 하나의 예로 들었을 뿐 얼마든지 내가 만들고자 하는 것을 클래스로 만들어 낼 수 있다.
  • 자동차 클래스(공장), AI 로봇 클래스 (공장) 등등.... 만들고 싶은 거 다 만들 수 있다.
  1. 클래스 공장을 통해서 객체를 어떻게 만들어내지?
  • 사람들이 공장에 주문을 넣는 과정을 잘 생각해보면 답은 쉽게 나온다.
  • 예를 들면, 어떤 농부가 경작용 트랙터를 주문한다고 하면 가격을 고민하고, 색상도 고민하고, 연식도 고민할 것이다.
  • 뿐만 아니라, 트랙터의 기능이나 성능 등 동작들에 대해서도 많은 고민을 할 것이다.
  • 고민하는 걸 2개 정도로 압출하면 크게 봤을 때 "특징"과 "동작"이 된다.
  • 클래스는 이러한 만들고자 하는 객체의 "특징"과 "동작"에 많은 시간을 들이고 집중하면서 설계를 하게 된다.
  1. 위 사항들을 조금은 어려운 말로 정의해본다면?
  • 객체의 특징 ➡️ 속성(attribute)
  • 객체의 동작 ➡️ 메소드(method) ➡️ 함수와 거의 동일.
  • 참고로, 파이썬에서는 일반적으로 함수라는 표현을 쓰지만, 클래스내에서의 함수는 메소드라고 부른다. 거의 함수와 동일하다.
  1. 클래스는 왜 나왔을까?
  • 클래스 없이도 객체의 특징(속성)들은 변수로 정의할 수 있을 것이고, 동작은 함수로 정의할 수 있을 것이다.
  • 그러나 프로그램의 규모가 커지고 여러 사람이 협업을 하는 과정에서 좀 더 체계적이고 분업화된 시스템으로 개발하고 확장해나갈 필요성이 있다.
  • 그런 일련의 과정에서 OOP(객체 지향 프로그래밍)가 만들어지고 발전해왔다.
  • 거의 모든 프로그래밍 언어에서 OOP문법을 지원하고 있고 하나의 언어로 OOP문법을 공부하면 다른 언어에서도 거의 동일하다.
  • 즉, 자바 언어로 OOP를 배운 사람은 python, php를 공부할 때 거의 거저먹기 수준이 된다.
  • 다만, 프로그래밍 언어마다 OOP를 구현하는 방법은 제각각 틀리기 때문에 이런 부분을 공부하는 시간은 필요하다.
profile
Let's start to Coding

0개의 댓글