박봉달의 개발생활

[부스트코스#7] 자바 문서 보는 법! 패키지, 클래스, 상속의 개념 정리!! 본문

Qualification/네이버 부스트코스 서포터즈 3기

[부스트코스#7] 자바 문서 보는 법! 패키지, 클래스, 상속의 개념 정리!!

박봉달 2021. 2. 27. 08:38
728x90

안녕하세요, 박봉달입니다!

오늘부터 부스트코스의 프로그래밍 입문 강의, <쉽게 배우는 자바 1> 강좌를 수강하며

배우는 내용들을 보기쉽게 정리, 자바(JAVA)의 세계로 인도하는 발판을 닦아드리도록 하겠습니다 :)

오늘은 자바 문서를 보는 법과 패키지, 클래스, 상속에 대해 알아보는 시간을 가지도록 하겠습니다!!


1. JAVA API Documentation

지난 시간에 API에 대해서 배웠던 것, 기억하시나요?

자바 자체에서도 API를 제공하여 사용을 더욱 편리하게 하고 있는데요,

아래의 홈페이지를 들어가보면 자바에서 어떤 API들을 제공하는지 확인할 수 있습니다.

 

http://docs.oracle.com

들어가보면 왼쪽 상단은 패키지가, 왼쪽 하단은 클래스에 대한 정보들을 담고 있습니다.

많은 종류의 패키지들과 클래스들을 지원하는 것을 알 수 있는데요,

모두 자바에서 지원하는 것이기에 검색하여 필요한 패키지와 클래스를 사용하면 되겠습니다

하지만 패키지와 클래스가 어떤 개념인지 헷갈리시는 분들을 위해

가벼운 정리를 한번 해보도록 하겠습니다.


2. 패키지와 클래스

우리가 쉽게 접할 수 있는 패키지와 클래스 중에는 어떤 것들이 있을까요?

수학적인 작업을 해야할 때 사용할 수 있는 MATH 클래스가 있겠습니다.

패키지와 클래스를 쉽게 생각해보자면,

패키지는 학교와 같은 개념이고, 클래스는 학교 안에 있는 여러 반과 같은 개념입니다.

MATH 클래스를 살펴보자면, 아래와 같이 java.lang 이라는 패키지에 들어있는 클래스로 볼 수 있습니다.

출처 : 부스트코스

클래스 MATH는 그럼 어떻게 구성되어 있을까요?

클래스는 변수인 variable과 메소드 들이 포함되어 있습니다.

대표적인 MATH 클래스의 변수로는 E, PI가 있고,

메소드로는 double, float, int, floor, ceil 등이 있습니다.

이것들을 사용함으로 우리가 프로그램을 구성하는 것이 더욱 쉬워지는 것이죠!

public class ClassApp { public static void main(String[] args) { System.out.println(Math.PI); System.out.println(Math.floor(1.6)); System.out.println(Math.ceil(1.6)); } }

패키지와 클래스, 그리고 변수와 메소드의 관계를 그림을 표현한다면 아래와 같습니다.

쉽게 말해 변수와 메소드를 정리하여 그룹핑해놓은 것이 클래스,

그리고 연관된 클래스들을 묶어서 그룹핑 해놓은 것이 패키지라고 볼 수 있습니다.

 


3. 상속

마지막으로 상속에 대해 알아보도록 하겠습니다.

사실 클래스들이 패키지 하위 문서로만 인식될 수도 있겠지만,

클래스도 클래스 하위에 클래스가 존재하기도 합니다.

이를 계층적 구조라고도 하죠.

출처 : 부스트코스

위의 클래스 PrintWriter를 예를 들어 보도록 하겠습니다.

PrintWriter는 Writer 라는 클래스 아래 종속되어 있고,

Writer 클래스는 Object 클래스 아래 종속되어 있습니다.

다른 말로 표현해보자면 Object-> Writer 클래스로 상속이 되었고,

Writer -> Printwriter 클래스로 상속 받았다는 것을 의미합니다.

출처 : 부스트코스

하지만 상위 클래스로부터 상속받은 메소드를 꼭 상속받아야하는 것은 아닙니다.

이는 Override 라는 덮어쓰기를 통해 본인이 원하는 메소드를 적용시킬 수도 있습니다.

여기서 중요하게 이해해야하는 점은 클래스 사이에서도 종속관계가 있다는 점과,

상위 클래스의 메소드 들이 하위 클래스로 상속된다는 점을 기억하시면 되겠습니다 :)


오늘은 자바를 더 알차게 쓰는 방법,

패키지와 클래스, 메소드의 개념 대해 알아보았습니다.

내일은 더 알찬 내용으로 돌아오도록 하겠습니다 :)

읽어주셔서 모두 감사합니다!!

 

728x90
반응형