2018년 9월 6일 목요일

Java 클래스와 객체 살펴보기

오늘은 java의 가장 큰 특징인 클래스와 객체에 대해서 살펴보도록 하겠다.

Java의 널리 알려진 대표적인 객체지향적인 프로그래밍 언어이다. 
"객체를 지향한다" 라는 의미의 프로그램인데, 쉽게말하면, 프로그램 입, 출력할때 부터 구현하는것까지 단 하나도, 객체가 빠지지 않는다.

이 객체란, 하나의 클래스 혹은 여러 클래스들의 영향을 받아서 생성되어 만들어진 결과물이다. 더 쉽게 생각하면 우리 주머니에 있는 스마트폰과 같다. 
클래스는 바로 이 스마트폰인 객체를 생성해주는 역할을 한다.

그렇다면, 다음과 같이 정리할 수 있다.

객체 -> 제품(결과물)
클래스 -> 공장 (결과물을 만들어내는)

 그렇다면 이렇게 자바는 이런 프로그래밍 과정(= 객체지향적)을 통해서 어떤 이득을 취할 수 있을까?

여러기능을 합쳐서 하나의 제품이 될 수 있는 캡슐화가 가능하다.
- 하나의 객체에 필요한 기능들을 모아놓은 특징
- 만약, 하나의 기능이 혹은 여러기능들이 다른 객체에서도 사용이 될 수 있는 재 사용성의 특징

이것 외에도 장점은 매우 많다.

하지만, 자바는 다소 프로그래머들의 개인적인 입맛이 다른것처럼 단점이 되는 요소도 있다.

- 하드웨어에 맞게 완전한 컴파일된 상태가 아니여서 실행 시 해석이 되기때문에 속도가 느리다는 단점을 갖고있다.
- 컴파일이 되지않는 예외처리의 경우가 있다. 코드 작성시 검사가 필요한 예외가 등장한다면, 무조건 프로그래머가 선언해주어야한다.

하지만, 이러한 단점들은 오랜 프로그래머들의 노력에 의해 발전해서 많이 개선되었다.
다음시간에는 직접 클래스와 객체를 생성해보는 코드를 작성해보자.

댓글 없음:

댓글 쓰기

[Java] N-I/O(Non-Blocking) 파일 읽기 쓰기 - GatheringByteChannel, ScatteringByteChannel, ByteBuffer 사용.

우리는 지금까지 다음과 같이 살펴보았다. 1.  InputStream / OutputStream : 입, 출력 스트림을 바이트로 처리하여 읽기, 쓰기. 2.  FileInputStream / FileOutputStream : 입, 출력 스트림을 ...