Java는 객체 지향적 언어이다.
왜 Java는 객체 지향적 언어일까?
이 객체 지향적 객체 지향이라는 말은 '모든 데이터를 객체로 취급한다'에 중심점을 두고 있다.
객체의 상태와 행동을 구체화해서 이 것을 프로그래밍 하는데 이를 객체 지향 프로그래밍이라 한다.
근데 왜 자바가 객체 지향 언어인가요?
자바에서는 클래스 (class)를 이용해 객체를 정의한다.
이 클래스에는 아까 말했던 상태(state)와 행위(behavior)가 있어야 한다.
그래서 자바는 이러한 클래스와 객체, 객체들 간의 관계를 통해 원하는 결과를 만들어 내고 로직을 구성한다
그래서 대표적인 객체지향 언어라 하면 Java가 떠오르는 것이다.
그럼 장점은 뭔가요?
2022.01.17 - [Language/Java] - 1) 객체 지향 프로그래밍 및 클래스 제작과 객체 생성 그리고 변수와 메서드)
과거에 정리한 글을 확인해보는 편이 빠르다.
-오늘의 핵심-
오늘 왜 객체 지향에 대해 학습 했는가 ?
이번주 수요일부터는 또 다른 미니프로젝트가 시작되는데 이 프로젝트에서 요구하는 것이 결국 객체지향 프로그래밍이다.
그래서일까 어떻게하면 더 객체지향적으로 코드를 짤 수 있을까? 라는 고민을 했고
평소에는 그냥 코드를 작성했다면 앞으로는 더욱 코드를 객체지향적으로 짜야한다고 생각했다.
그래서일까 약 1주에 걸쳐 진행된 객체 지향 수업 자료를 다시 정독하고 내가 놓친 부분과 앞서 했던 고민에 대해 계속 Why라는 질문을 던져보았다.
그래서일까 내가 평소에 놓쳤던, 혹은 개념이 헷갈렸던 부분들을 다시 확인하고 재정립 하는 과정을 갖게 되었다.
우선 캡슐화(encapsulation)이다.
내가 알고 있었던 캡슐화는 그냥 정보를 묶고, 감추는 정도? 간단하게 알고 있었다.
내가 기존에 알고 있었던 내용은 맞고, 외부에 영향을 주지 않는다는 중요한 포인트를 알게 되었다.
- 그럼 캡슐화를 왜?쓸까
기존에 설정한 조건에서 다른 조건으로 바뀐다면? 우리는 코드를 일일이 다 수정해야할 것이다.
그래서 객체라는 것을 통해 일괄적으로 수정하는 방식이 비용적인 측면에서 유리하다. 그래서 캡슐화를 사용하는 것이다.
캡슐화는 정보 은닉이라는 특징을 갖고 있다.
말 그대로 외부에서 내부의 정보에 접근하고나 변경할 수 없게, 직접적인 접근을 막고, 객체가 제공하는 필드나 메서드만 이용해서 접근할 수 있는데, 이는 유지보수나 오류의 범위를 줄이기 위함이다.
또 캡슐화는 독립성의 특징을 갖게 되는데, 이는 접근 제어자를 사용한다.
그리고 다형성(Polymorphsim)
다형성은 말 그대로 여러 형태를 가지는 특성이다.
자바에서는 하나의 코드를 가지고 여러 자료형으로 구현해서 실행할 수 있다.
이말은 같은 코드에서 여러 실행 결과를 얻을 수 있다는 뜻이다.
당연히 이 다형성을 잘 이용하면 확장성 있고 효율적으로 코드를 짤 수 있다.
'Language > Java' 카테고리의 다른 글
[1] 이해하기 힘든 이름 (1) | 2024.01.22 |
---|---|
Reflection(리플렉션)이란? (0) | 2023.04.01 |
문자열 나누기 - StringTokenizer (0) | 2022.08.03 |
자료형과 BigDecimal 그리고 소수점(부동, 고정) (0) | 2022.05.22 |
String 과 JVM (0) | 2022.05.22 |