자바 문서 보기 - API
자바 문서 보기 - API vs UI
API
- 자바 프로그램을 만들 때, 자바의 도구들을 응용하여 원하는 작업을 시간적 순서에 따라 동작하게 만들었다.
작업들의
시간적 순서
에 주목해서프로그램(Program)
이라고 부르고, 도구의응용
에 주목해서애플리케이션(Aplication)
이라 부른다. - 이 때, 자바는 자바의 도구들을 응용해서 사용하기 위해 일정한
조작장치
를 구성했는데, 이를자바 API(Application Programming Interface)
라 부른다. - 자바 프로그램은 또 다른 자바 프로그램에서 사용 될 수도 있고, 다른 프로그램에서 사용할 수 있도록 만들어 둔 장치 역시 API이다.
UI
- 위에서 처럼 자바 프로그램이 만들어지면, 이를
사용자
가 사용할 수 있는데, 이 때 자바 프로그램을 사용자가 시작할 수 있도록 만들어 둔 장치를UI(User Interface)
라고 한다. - ex ) 커맨드 라인 시스템의
아규먼트
, 데스크톱앱의 버튼
, 웹페이지의링크
등.
API와 UI의 차이
- UI: 팝업 창이 나타났을 때의 경우, 유저가 확인할 수 있는 해당 창 자체를 의미하는 것.
- API: 운영체제가 제공하는 함수의 집합. 팝업창을 띄우기 위한 코드를 의미한다.
자바 API Documentation 보기
-
Google에 API Documentation 페이지를 열었을 때, 보이는 페이지
-
Class에 대한 정보가 나와있는 곳에서 Math 클래스를 찾아 선택 한 후, 우측의 탭에서 Math 클래스의 설명서를 살펴 보면,
위의 이미지 처럼 해당 클래스가 어디에 속해있는지 알 수 있다. 맨 윗쪽에는 package에 대한 정보가 적혀있어, Math클래스가
java.lang
에 속해있다는 정보를 알 수 있다. -
정보를 밑으로 더 내리며 살펴보면, 변수(Variable / Field)와 메소드(Method)에 대한 정보들도 확인 할 수 있다.
클래스, 변수, 메소드, 패키지
-
클래스: 서로 연관된 변수, 메소드들을 하나의 묶음으로 정리하여 이름을 붙인 것. 디렉토리와 비슷한 느낌으로 기억하면 더 수월할 수 있다.
- 예제:
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)); // 특정 소수점 이하에 대해서 올림 한 값을 산출 } }
-
패키지: 위의 클래스들을 하나의 묶음으로 정리한 것.
인스턴스
import java.io.PrinterWriter;
import java.io.IOException;
import java.io.FileNotFoundException;
public class InstanceApp {
public static void main(String[] args) throws IOException{ //throws IOException == 예외를 처리하는 것.
PrintWriter p1 = new PrintWriter("저장하고 싶은 파일의 이름.파일의 확장자");
p1.write("Hello 1");
p1.close();
PrintWriter p2 = new PrintWriter("result2.txt");
p1.write("Hello 2");
p1.close();
}
}
-
위의 예제를 보면. Math클래스와는 달리 new 키워드를 사용하여 인스턴스를 생성한 것을 확인 할 수 있다.
PrintWriter p1 = new PrintWriter("저장하고 싶은 파일의 이름.파일의 확장자");
자바 API 내에 있는 클래스인 PrintWriter를 복제하여 p1이라는 하나의 인스턴스를 생성한 것이다.
-
PrintWriter의 경우,
java.io
패키지에 속해있어, 이를 불러들이는 명령어import
를 사용하였고,throws IOException
의 경우, 내가 지정한파일이 존재하지 않을 때
의 예외를 처리할 수 있는 명령어를 집어넣은 것이다. -
이런식으로 인스턴스를 사용하는 이유:
- Math클래스 때 처럼, 단발성으로 사용하는 항목이 아닌, 지속적으로 사용을 해야할 때. 혹은 기능을 재사용 해야할 때 유용하게 사용 할 수 있기 때문이다.
- 인스턴스를 생성할 수 있는 클래스의 경우, 자바 API 문서 내에 Constructor Summary가 존재한다.
상속
-
클래스는 서로간의 계층관계를 갖고있을 수 있다. PrintWriter를 살펴보면,
위의 이미지와 같이 구성이 되어있는 것을 확인 할 수 있다.
-
들여쓰기 기준으로 상속관계를 나타내는 것으로, java.io.PrintWriter <–(상속)– java.io.Writer 으로, Writer는 PrintWriter의 부모와 같은 존재이며 java.io.Writer < –(상속)– java.lang.Object 으로, Object는 Writer의 부모와 같은 존재이다.
여기서 Object는 모든 클래스들의 조상이라고 볼 수 있다.
-
-
상속관계의 경우, 부모 클래스의 대부분의 변수와 메소드를 사용 할 수 있는데 부모클래스의 기능을 변형한 것을 override라고 한다.
출처: 부스트코스-쉽게 배우는 자바(java)_생활코딩