일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준 알고리즘
- BufferedWrite
- 현대암호
- jvm
- 객체지향
- 연결된 예외
- 예외처리
- bubble-sort
- 형변환 연산자
- 클래스 패스
- 공개키 암호
- OOP
- 소수판정
- 재귀호출기본
- 암호론
- 백준
- java
- LANG
- 자료구조
- class
- HTML
- 자동 형변환
- 2884
- 객체
- 디렉티브
- try&catch
- 알고리즘
- JSP
- 프로그래밍
- lang package
- Today
- Total
코드일기장
Java_ 객체지향개념(객체지향 1-1) 본문
객체지향 언어 역사와 특징
Java는 oop(object oriented programming)으로 유명하다. oop는 객체지향이라고 보면 된다.
현대시대 많이쓰이는 객체지향 언어 중 대표적인 것은 C++, Java, Python이 있다. 프로그래머에겐 객체지향의 개념은 꼭 배워야 하고 익숙해지고 확실히 알아야 한다. 개인적인 생각으로는 Java로 객체지향을 균형 있게 배운다면 c++도 쉽게 배울 수 있다고 생각한다. (책은 Java의 정석을 추천한다.)
객체지향 언어가 나오기 전 소프트웨어의 세상은 보통 C언어 같은 절차적인 언어 위주로 개발되었다. 하지만 절차적 언어는 빠르게 발전하는 소프트웨어에 어울리지 못했다. 그러면서 객체지향이론과 객체지향 언어가 탄생을 하게 되었다.
대표적인 예로 기존 C에서 객체지향이 추가 된 C++의 탄생이다. C++은 초기는 너무 어려워 객체지향이 일반화가 바로 되진 못했다. 하지만 지금은 Java, Python 등 다양한 객체지향 언어들이 나와 일반화가 잘 되고 배우기도 예전보다 훨씬 쉬워졌다.
절차적->객체지향으로 발전
그래서 객체지향언어의 특징과 장점은 무엇인가? 크게 3가지로 설명해보겠다.
- 코드의 재사용성이 높다. (새로운 코드를 작성하고 기존 코드를 이용할 때 매우 유리하다.)
- 유지보수가 용이하다. (코드간의 관계를 맺어 적은 노력으로 코드 변경이 가능하다.)
- 중복 코드 제거 (프로그래머의 숙명중 하나는 중복을 최대한 줄이는 것이다. 객체 지향은 중복을 줄이는데 용이하다.)
더 다양한 장점도 분명많을 것이고 단점 또한 있을 것이다. 일단 기본적인 객체지향을 쓰는 이유에 대해 설명해보았다.
Java 객체지향언어의 핵심
Java에서 oop 중요 한 것
1. 캡슐화
2. 상속
3. 추상화
4. 다형성
천천히 필자도 공부하면서 확실히 알게 된다면 꾸준히 글을 포스팅하겠다. 객체지향은 확실히 처음 접하면 어렵고 헷갈린다. 끊임없는 복습이 중요하다고 생각한다. 끊임없는 복습 또 한 개발자로서 가져야 할 자세라고 생각한다.
짧게 블로그 포스팅을 마치겠다.
🎈 다음 글 보기(객체지향1-2)
<일러스트>
2번째: https://www.flaticon.com/kr/free-icon/web-development_1688400?related_id=1688502&origin=search
<div>아이콘 제작자 <a href="https://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/kr/" title="Flaticon">www.flaticon.com</a></div>
'Java > OOP' 카테고리의 다른 글
[Java] 호출 스택, 매개변수 (객체지향 1-6) (0) | 2022.01.04 |
---|---|
[Java] 메서드와 return(객체지향 1-5) (0) | 2021.12.29 |
[Java] 변수의 종류와 클래스 변수 인스턴스 변수(객체지향 1-4) (0) | 2021.12.28 |
Java_객체배열과 클래스의 정의(객체지향 1-3) (0) | 2021.12.23 |
Java_객체의 생성과 사용법 (객체지향 1-2) (0) | 2021.12.20 |