생활코딩

[생활코딩] 13. 자바문서 보는 법

주니어주니 2022. 8. 8. 19:08

 

 

* 주석 한번에 하는 법 : ctrl+shift+c

 

 

  • 13.1. API vs UI

자바는 프로그램을 쉽게 만들 수 있도록 여러가지 부품을 제공 (ex. system, date, math, printwriter 등등 )

이렇게 자바가 기본적으로 내장하고 있는 기능들 = 라이브러리

라이브러리 부품을 이용해서 나의 프로그램 생성

이 때,

Application(응용) Programming(시간) Interface (API) : 자바가 기본적으로 제공하는 부품들의 조작 방법

User Interface (UI) : 사용자가 우리가 만든 프로그램을 조작하기 위한 조작 장치

 

  • 13.2. 패키지, 클래스, 변수, 메소드
  • 자바의 공식 사용설명서 보는 법 : api documentation java 구글링

 

  • 패키지: 서로 연관된 클래스들을 모아 이름을 붙여서 분류해놓은 것
  • 클래스: 서로 연관된 변수와 메소드를 모아서 이름을 붙인 것

      ∴패키지>클래스>변수,메소드

 

  • 13.3. 클래스
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));

	}

}

에서

Math. = 클래스 (연관된 변수와 메소드를 모아서 이름 붙인 것)

pi, floor, ceil = 메소드

 

 

  • 13.4. 인스턴스

printwriter 라는 클래스 이용

얘는 사용법이 math와 다름

math : constructor(생성자)가 없음 (일회용)

printwriter : constructor가 있음 -> 저 constructor를 이용해서 인스턴스를 만드는 것이 허용되어 있다

 

PrintWriter("저장하고 싶은 파일의 이름");

이 앞에 new를 붙여서 printwriter의 복제본, 아바타를 만듦 (일회용이 아닌 작업을 할 때 효율성을 위해)

그 복제본을 p1이라는 변수에 담음

 

p1 = new PrintWriter("result1.txt");

저 변수에 담겨있는 것이 printwriter라는 클래스의 인스턴스

 

그리고 p1에 아무거나 들어가면 안되기 때문에

printwriter를 붙여줌 (p1에는 반드시 printwriter라는 클래스의 인스턴스만 들어간다는 의미)

 

근데 이렇게 하면 오류 -> 패키지를 가져와야 함 (import)

import java.io.PrintWriter;

(priintwriter가 java.io.라는 패키지에 소속되어 있음)

= 이 파일 내에서 printwriter라는 이름의 클래스는 java.io.라는 패키지에 소속된 것이다.

 

그래도 오류

왜냐면 예외의 상황(파일이 없을 경우 등)을 어떻게 처리할지를 정해야 하는데

예외에 대해서 공부하기 전까지는

add throws declaration 이용

 

그리고 실행시킨 후

프로젝트에 대해서 refresh 누르면

result1.txt, result2.txt가 생김

 

인스턴스로 만들어진 복제품은 각자의 상태를 가질 수 있다.

 

 

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
public class InstanceApp {

	public static void main(String[] args) throws IOException {
		
		PrintWriter p1 = new PrintWriter("result1.txt"); 
		p1.write("Hello 1");
		p1.close();
		
		PrintWriter p2 = new PrintWriter("result2.txt"); 
		p2.write("Hello 2");
		p2.close();

	}

}

 

 

 

  • 13.5. 상속

java.lang.Object

java.io.Writer

java.io.PrintWriter

(PrintWriter라는 클래스는 Writer라는 클래스를 상속받았다 -> writer가 부모, printwriter가 자식)

(Writer라는 클래스는 Object라는 클래스를 상속받았다 -> object가 부모, writer가 자식)

 

이미 있는 클래스의 변수, 메소드들을 그대로 물려받으면서

거기에 자기가 원하는 변수, 메소드를 추가한 것

 

Object : 자바의 가장 기본적인 클래스 ( 모든 클래스는 object 클래스는 반드시 상속받음)

Writer extends Object (object를 확장해서(상속받아서) writer를 만듦)

PrinterWriter extends Writer

 

ex)

toString 이라는 메소드를 쓰고싶을 때 먼저 printwriter -> writer -> object 순으로 찾아서 있으면 반영

write 라는 메소드가 printwriter, writer 에 둘다 있으면 printwriter(하위 클래스)에 있는 걸로 씀 ( override )