일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JVM
- 변수의 다양성
- Java
- 스파르타내일배움캠프TIL
- Token
- GitHub
- 포맷은 최후의 보루
- Diary 해우소
- 내일배움캠프
- KPT
- 감사기록
- Git
- static
- 객체지향 언어
- 클래스
- #스파르타내일배움캠프
- TiL_1st_0419
- 성장기록
- #스파르타내일배움캠프TIL
- 스레드
- 스파르타내일배움캠프
- Github_token
- diary
- Java의 이점
- #내일배움캠프
- 해우소
- 생성자
- 인스턴스
- 메서드
- 회고록
- Today
- Total
몬그로이
Java는 객체지향 언어다 _객체지향이 뭔데? 본문
Java는 객체지향 프로그램 언어라고 한다
그럼 객체란 무엇일까?
우리 주변에는 수 많은 물건들이 있고 하나하나를 모두 객체라고 할 수 있다
심지어 사람들 한 명 한 명도 객체로 볼 수 있으며
더 세분하여 보면 머리, 몸통, 다리 등으로 구분할 수 있다
객체지향이라는 말은 하나의 이름을 가진 한 객체로 본다는 것이라고 보면되는데,
책 한 권을 예로 들어 보겠다
책 한 권은 객체이다
각 책마다 출판사, 제작날짜, 종이재질 등의 특성을 가지기 때문이다
그 책을 분리해보면 커버와 속지로 나눌 수 있다
나눈 순간부터 커버도, 속지도 각 객체로 볼 수 있다
커버는 재질이나 두께 등의 특징이 있으며
속지 또한 이루어진 장수, 구성된 종이의 사이즈 등을 특징으로 갖기 때문이다
속지를 더 세분화 해 보면 챕터별로 묶거나 낱장으로 구분하여 볼 수 있다
챕터로 나눴을 때는 주장하는 내용들이 각 특징으로 볼 수 있으며
낱장으로 구분했을 때도 각 낱장이 가지는 글자들의 구성을 특징으로 볼 수 있다
이로 끝나는 것이 아니라
낱장도, 각 챕터도 더 세분하여 볼 수 있다
그렇게 세분화 하여 세분화된 각각을 또 객체로 볼 수 있다
한 페이지씩, 한 문단씩, 한 문장씩.. 각각 특징을 가지는 객체이다
Java는 객체를 지향언어라는 말은
세분하고 또 세분화 하여 표현하며 사용하는 언어라는 뜻이다
프로그램에 있어서는 모듈화 한다고 말할 수 있다
프로그램 모듈화?
프로그램의 구성 요소를 독립적인 단위로 나누고,
각각의 단위를 객체로 표현하여 프로그램을 구조화 하는 것
왜 Java가 프로그래밍 언어로서 선호되는지는
객체지향언어라는 특징이 프로그래밍에 얼마나 도움이 되는지 생각해보면 된다
우선, 세분화 하여 작은 단위에서 보게되면 논리적으로 구성하기 좋아진다
특히, 복잡한 구조를 가진 시스템의 경우 세분하여 보기 때문에 이해하기 쉬워지며
그로인해 유지보수하기도 좋아진다
객체는 모두 독립적으로 존재하기 때문에
다른 객체와 상호작용할 수 있게 되어 확장성이 좋고,
변경사항이 발생했을 때도 수정하기 좋다
프로그램을 기준으로 다시 생각해 보자
프로그램을 모듈화 하면 각 객체는 서로 간섭하지 않고 독립적으로 동작할 수 있게 된다
따라서 부분적으로 활용할 수 있으므로 코드의 재사용성이 높아지고 유지보수성이 좋아진다
또한, 객체로 분리되어 있을수록 객체간 결합도가 낮아지므로(객체간 간섭이 적어지므로)
각 객체를 수정하거나 교체하기 쉬워진다
때문에 프로그램의 확장성과 유연성을 증가시킨다
'Dev 언어 정리 & Self QnA > Java' 카테고리의 다른 글
한 클래스는 한가지 인터페이스만 구현할까? (0) | 2024.04.24 |
---|---|
인터페이스, 클래스, 인스턴스, 메서드 그리고 생성자? (0) | 2024.04.24 |
ArrayList와 List의 관계? (0) | 2024.04.23 |
컴파일러를 두 번이나 거쳐서 얻는 것? (0) | 2024.04.23 |
Java 정수형 변수는 왜 네 가지나 있을까? (0) | 2024.04.22 |